- 通过Composer安装(packagist)。必须是3.7版本3.5会报错
composer require "hhxsv5/laravel-s:~3.7.0"
# 确保你的composer.lock文件是在版本控制中
2.注册Service Provider(以下两步二选一)。
Laravel : 修改文件config/app.php ,Laravel 5.5+支持包自动发现,你应该跳过这步 'providers' => [?//...?Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class, ], Lumen : 修改文件bootstrap/app.php $app->register(Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class); 3.发布配置和二进制文件。 -
每次升级LaravelS后,需重新publish;点击Release去了解各个版本的变更记录。 -
php artisan laravels publish
# 配置文件:config/laravels.php
# 二进制文件:bin/laravels bin/fswatch bin/inotify
?4.修改配置config/laravels.php :监听的IP、端口等,请参考配置项。
运行
php bin/laravels {start|stop|restart|reload|info|help}
在运行之前,请先仔细阅读: 注意事项(非常重要)。
- 命令说明
start 启动LaravelS,展示已启动的进程列表 "ps -ef|grep laravels"。支持选项 "-d|--daemonize" 以守护进程的方式运行,此选项将覆盖laravels.php 中swoole.daemonize 设置;支持选项 "-e|--env" 用来指定运行的环境,如--env=testing 将会优先使用配置文件.env.testing ,这个特性要求Laravel 5.2+ stop 停止LaravelSrestart 重启LaravelS,支持选项 "-d|--daemonize" 和 "-e|--env"reload 平滑重启所有Task/Worker/Timer进程(这些进程内包含了你的业务代码),并触发自定义进程的onReload 方法,不会重启Master/Manger进程;修改config/laravels.php 后,你只能 调用restart 来实现重启
与Nginx配合使用(推荐)?
gzip on;
gzip_min_length 1024;
gzip_comp_level 2;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml;
gzip_vary on;
gzip_disable "msie6";
upstream swoole {
# 通过 IP:Port 连接
server 127.0.0.1:5200 weight=5 max_fails=3 fail_timeout=30s;
# 通过 UnixSocket Stream 连接,小诀窍:将socket文件放在/dev/shm目录下,可获得更好的性能
#server unix:/xxxpath/laravel-s-test/storage/laravels.sock weight=5 max_fails=3 fail_timeout=30s;
#server 192.168.1.1:5200 weight=3 max_fails=3 fail_timeout=30s;
#server 192.168.1.2:5200 backup;
keepalive 16;
}
server {
listen 80;
# 别忘了绑Host哟
server_name laravels.com;
root /xxxpath/laravel-s-test/public;
access_log /yyypath/log/nginx/$server_name.access.log main;
autoindex off;
index index.html index.htm;
# Nginx处理静态资源(建议开启gzip),LaravelS处理动态资源。
location / {
try_files $uri @laravels;
}
# 当请求PHP文件时直接响应404,防止暴露public/*.php
#location ~* \.php$ {
# return 404;
#}
location @laravels {
# proxy_connect_timeout 60s;
# proxy_send_timeout 60s;
# proxy_read_timeout 120s;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header Server-Protocol $server_protocol;
proxy_set_header Server-Name $server_name;
proxy_set_header Server-Addr $server_addr;
proxy_set_header Server-Port $server_port;
proxy_pass http://swoole;
}
}
使用laravel-s导致tymon/jwt-auth用户返回上一次认证用户信息解决
- 在laravel中用了laravel-s导致tymon/jwt-auth每次获取用户信息的时候总是返回上一次用户的信息,可以设置config/app.php中的providers配置为:
-
? 'providers' => [
? ? ? ? Illuminate\Pagination\PaginationServiceProvider::class,
?
? ? ? ? // 不要移动这两个组件的顺序
? ? ? ? \Illuminate\Auth\AuthServiceProvider::class,
? ? ? ? \Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
? ? ? ? ......
? ? ],
swoole easywechat 支付回调出现 Invalid request XML.
vendor/overtrue/wechat/src/Payment/Notify/Handler.php
把$this->app['request']->getContent(); 改成think\facade\Request::getContent();
最后重启swoole就可以了。 ?
|