热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

laravels加速swoole

通过Composer安装(packagist)。必须是3.7版本3.5会报错composerrequirehhxsv5laravel-s:~3.7.0-vvv#确保你的co
  1. 通过Composer安装(packagist)。必须是3.7版本3.5会报错

composer require "hhxsv5/laravel-s:~3.7.0" -vvv
# 确保你的composer.lock文件是在版本控制中

2.注册Service Provider(以下两步二选一)。


  • Laravel: 修改文件config/app.phpLaravel 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.phpswoole.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用户返回上一次认证用户信息解决


  1. 在laravel中用了laravel-s导致tymon/jwt-auth每次获取用户信息的时候总是返回上一次用户的信息,可以设置config/app.php中的providers配置为:
  2.   '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就可以了。


推荐阅读
author-avatar
Y_虞儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有