本地环境:
window10系统,安装了docker for window,内部运行了php和nginx两个服务容器,php容器已经事先映射了9501端口供easyswoole使用;
部署代码:
1,进入php容器内工作目录(我的容器内映射工作目录为/app),新建项目目录easyswoole,进入/app/easyswoole目录;
2,使用composer安装
composer require easyswoole/easyswoole=3.x
php vendor/easyswoole/easyswoole/bin/easyswoole install
3,启动框架
php easyswoole start
4,浏览器访问 访问 http://localhost:9501 看到框架的欢迎页面,表示框架已经安装成功
注意事项:
1,在部分环境下,例如win10的docker环境中,不可把虚拟机共享目录作为EasySwoole的Temp目录,否则会因为权限不足无法创建socket,产生报错:listen xxxxxx.sock fail,为此可以手动在dev.php配置文件里把Temp目录改为其他路径即可,如:'/Tmp',此时报错内容为:
[error]:[EasySwoole\Task\Worker bind /app/easyswoole/Temp/EasySwoole.TaskWorker.1.sock fail case Operation not permitted at file:/app/easyswoole/vendor/easyswoole/component/src/Process/Socket/AbstractUnixProcess.php line:31
2,php扩展xdebug和easyswoole冲突,报警告,此时需要禁用php的xdebug扩展即可,错误内容为:
[debug][warning]:[Swoole\Server::start(): Using Xdebug in coroutines is extremely dangerous, please notice that it may lead to coredump! at file:/app/easyswoole/vendor/easyswoole/easyswoole/src/ServerManager.php line:117
优化建议:
这样部署好的easyswoole访问地址为ip+端口,如果希望用域名来访问的话,可以考虑部署nginx反向代理来访问php端口;代码:
server {
listen 80;
server_name www.123.com;
location / {
proxy_pass http://127.0.0.1:9501;
}
}