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
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦