每次遇到部署的问题都让我很难受,但还好这次用了半天时间就解决了问题,记录下来以备再用
CentOS
- CentOS 7.0 下安装 Lumen 和 Swoole 的方案就是中规中矩,在其它文档里都有写,关键是这个
supervisord
又让我花费了不少的时间去排错 - 按照 Laravel-S 的文档写好配置文件(配置文件里的 user 不能乱写),却一直报 socket 的错误,导致 run 不起来,找了半天发现只要这样就可以了:
sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl -c /etc/supervisord.conf
依次执行即可,关于 cli 管理工具的一些方法,抄录下来:
运行 supervisord -c /etc/supervisord.conf
启动运行
ps aux | grep supervisord
查看 supervisord 是否正在运行使用
Supervisorctl 是 supervisord 的一个命令行客户端工具,运行以下命令指定其读取配置文件:
supervisorctl -c /etc/supervisord.conf
运行 supervisorctl
进入客户端运行 reread
读取项目 ini 文件
运行 add xxx
命令后,被添加的项目将会一直显示在supervisorctl 中,便于管理
常用命令supervisord:
初始启动Supervisord,启动、管理配置中设置的进程;
supervisorctl stop(start, restart) xxx
,停止(启动,重启)某一个进程(xxx);
supervisorctl reread
: 只载入最新的配置文件, 并不重启任何进程;
supervisorctl reload
: 载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
supervisorctl update
: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;
Swoole 跑起来之后,根据 Laravel-S 的文档把 Nginx 的配置改一下,然后 reload 就可以了
MacOS
一开始机器上装的 PHP 没有 Swoole,然后也没装PECL
,折腾了好久一直装不好 PECL,最后发现只要删掉 PHP,用 brew 重装到 php@7.2 就可以了,这个版本直接自带了 PECL
然后通过:
pecl install swoole
中间也出现了/usr/include/
文件夹不存在,导致扩展装不上,或是openssl/.sh
不存在的问题,恶心了半天。
- 解决
openssl
:
ln -s /usr/local/opt/openssl/include/openssl /usr/local/include/openssl
- 解决
/usr/include/
权限
先在 Mac 上安装 Linux 运行环境
xcode-select --install
先关闭 Mac 的安全模式:
重启 --> command + R 进入安全模式,打开命令行,输入:
csrutil disable(操作完成之后再进入安全模式 csrutil enable 打开安全模式)
重启后 cd 过去(MacOSX--vvv
后面的版本可能会不同)
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
然后 把 include 文件夹 copy 到 /usr 下面就行了,最后按照脚本提示安装完成即可
php -m 查看 swoole 扩展是否安装
网友评论