视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
laradock安装swoole不成功怎么办
2020-11-03 13:39:00 责编:小采
文档


laradock安装swoole不成功怎么办?

Laradock中使用swoole的方法

首先我们需要在 laradock 的.env文件下面修改WORKSPACE_INSTALL_SWOOLE=true

重新 build 一下虚拟机

docker-compose build workspace`

重新 build 好了之后,启动

docker-compose restart workspace

进入虚拟机检查一下是否安装成功了

docker-compose exec workspace bash
 
php -m | grep swoole,

如果打印出了swoole,就证明安装成功了

接下来,我们要修改一下 nginx 的配置文件

 map $http_upgrade $connection_upgrade {
 default upgrade;
 '' close;
 }
 upstream laravels {
 # Connect IP:Port
 server workspace:1215 weight=5 max_fails=3 fail_timeout=30s;
 keepalive 16;
 }
 server {
 listen 80;
 # listen [::]:80 ipv6only=on;
 server_name yourdomain.com;
 root /var/www/swoole/public;
 index index.php index.html index.htm;
 error_log /var/www/swoole_error.log;
 location = /index.php {
 # Ensure that there is no such file named "not_exists"
 # in your "public" directory.
 try_files /not_exists @swoole;
 }
 location / {
 try_files $uri $uri/ @swoole;
 }
 location @swoole {
 set $suffix "";
 if ($uri = /index.php) {
 set $suffix ?$query_string;
 }
 proxy_set_header Host $http_host;
 proxy_set_header Scheme $scheme;
 proxy_set_header SERVER_PORT $server_port;
 proxy_set_header REMOTE_ADDR $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection $connection_upgrade;
 # IF https
 # proxy_set_header HTTPS "on";
 proxy_pass http://laravels$suffix;
 }
 location ~ /.ht {
 deny all;
 }
 location /.well-known/acme-challenge/ {
 root /var/www/letsencrypt/;
 log_not_found off;
 }
 }

这份配置文件,是参照官方文档的,这里面有个很关键的地方,就是修改 upsteam 那里,server workspace:1215。因为我们 Nginx 的运行是跟 laravel 的环境在不同一台机子的,所以你必须修改这里的upsteam,不然就会造成502。

接下来,我们进入我们的 laravel 项目,安装一下laravel-swoole,

composer require swooletw/laravel-swoole
php artisan vendor:publish --tag=laravel-swoole

然后接下来,我们可以修改一下 laravel的.env 文件,让laravel-swoole变成守护进程启动还有指定 swoole 代理的host,

SWOOLE_HTTP_HOST=workspace
SWOOLE_HTTP_DAEMONIZE=true
SWOOLE_HOT_RELOAD_ENABLE=true

端口我没有修改,默认是1215,如果有需要可以自行修改,记得修改nginx。

启动swoole

php artisan swoole:http start | stop | restart | resload

打开我们的网页我修改了host,所以我用的是自定义的域名,打开之后如果你看到欢迎页面

恭喜你,成功了。另外,假设你发现启动了swoole 之后,性能反而变慢了,那就要进行一些参数调优了,具体可以参照官方的文档swoole,这里就不展开讲了。

开发环境热更新

调整 swoole_http 中 max_request = 1

san swoole:http start | stop | restart | resload

下载本文
显示全文
专题