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中文網其他相關文章!