easy_swoole安裝使用踩坑記錄ock fail case Operation not permitted at

我的是win10下面的centos虛擬機,centos系統是7.8.2003的。php版本和swoole下面啓動信息裏面有展示。

安裝之前要先單獨創建一個目錄

mkdir easy_sw && cd easy_sw
composer require easyswoole/easyswoole

不然搞得你的根目錄亂糟糟的。

運行啓動命令報錯

php vendor/easyswoole/easyswoole/bin/easyswoole install
php easyswoole start

報錯如下:

  ______                          _____                              _
 |  ____|                        / ____|                            | |
 | |__      __ _   ___   _   _  | (___   __      __   ___     ___   | |   ___
 |  __|    / _` | / __| | | | |  \___ \  \ \ /\ / /  / _ \   / _ \  | |  / _ \
 | |____  | (_| | \__ \ | |_| |  ____) |  \ V  V /  | (_) | | (_) | | | |  __/
 |______|  \__,_| |___/  \__, | |_____/    \_/\_/    \___/   \___/  |_|  \___|
                          __/ |
                         |___/
main server                   SWOOLE_WEB
listen address                0.0.0.0
listen port                   9501
ip@enp0s3                     192.168.10.136
worker_num                    8
reload_async                  true
max_wait_time                 3
pid_file                      /mnt/share/easy_sw/Temp/pid.pid
log_file                      /mnt/share/easy_sw/Log/swoole.log
user                          root
daemonize                     false
swoole version                4.5.1
php version                   7.3.18
easy swoole                   3.3.7
develop/produce               develop
temp dir                      /mnt/share/easy_sw/Temp
log dir                       /mnt/share/easy_sw/Log
[2020-06-04 09:35:43][debug][error]:[EasySwoole\Task\Worker bind /mnt/share/easy_sw/Temp/EasySwoole.TaskWorker.1.sock fail case Operation not permitted at file:/mnt/share/easy_sw/vendor/easyswoole/component/src/Process/Socket/AbstractUnixProcess.php line:31]
[2020-06-04 09:35:43][debug][error]:[EasySwoole\Task\Worker bind /mnt/share/easy_sw/Temp/EasySwoole.TaskWorker.0.sock fail case Operation not permitted at file:/mnt/share/easy_sw/vendor/easyswoole/component/src/Process/Socket/AbstractUnixProcess.php line:31]
[2020-06-04 09:35:43][debug][error]:[EasySwoole\Task\Worker bind /mnt/share/easy_sw/Temp/EasySwoole.TaskWorker.2.sock fail case Operation not permitted at file:/mnt/share/easy_sw/vendor/easyswoole/component/src/Process/Socket/AbstractUnixProcess.php line:31]
[2020-06-04 09:35:43][debug][error]:[EasySwoole\Task\Worker bind /mnt/share/easy_sw/Temp/EasySwoole.TaskWorker.3.sock fail case Operation not permitted at file:/mnt/share/easy_sw/vendor/easyswoole/component/src/Process/Socket/AbstractUnixProcess.php line:31]
[2020-06-04 09:35:43][debug][error]:[EasySwoole\EasySwoole\Bridge\BridgeProcess bind /mnt/share/easy_sw/Temp/bridge.sock fail case Operation not permitted at file:/mnt/share/easy_sw/vendor/easyswoole/component/src/Process/Socket/AbstractUnixProcess.php line:31]

根據錯誤信息排查到是因爲沒有下面的幾個文件,原因是創建socket的時候系統報錯Operation not permitted,根本原因是虛擬機共享目錄不支持這種操作。
在這裏插入圖片描述
解決問題:

修改dev.php裏面的緩存目錄配置,使用linux系統的臨時目錄即可:
在這裏插入圖片描述

再次運行,正常。進到緩存目錄查看:
在這裏插入圖片描述
在這裏插入圖片描述
如果要讓外部訪問還需要放行9501端口:

firewall-cmd --zone=public --add-port=9501/tcp --permanent
firewall-cmd  --reload

在這裏插入圖片描述

配置Nginx反向代理

因爲swoole不支持完整的htpp協議,所以最好配置一下轉發,以便設置域名訪問。

server {
    root /mnt/share/xxx;
    server_name easy_dev.xxx.xxx.com;
    location / {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        if (!-f $request_filename) {
             proxy_pass http://127.0.0.1:9501;
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章