首頁  >  文章  >  php框架  >  laradock安裝swoole不成功怎麼辦

laradock安裝swoole不成功怎麼辦

藏色散人
藏色散人原創
2020-04-09 09:42:523024瀏覽

laradock安裝swoole不成功怎麼辦

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

以上是laradock安裝swoole不成功怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn