文章目录
总结一下
之所以第一次安装失败,应该是检查配置环境./configure --with-php-config=/usr/local/php/bin/php-config --enable-sockets --enable-openssl --enable-http2这一步骤 ,没有选择 打开sockets 、openssl 、http2这几个选项。
所以导致安装不成功,也就找不到swoole.so这个文件了
所以在整个过程中,'extension=swoole.so’添加的路径也是不对的,因为安装不成功,该文件不存在
1、正确的安装swoole成功记录
下载swoole
wget https://pecl.php.net/get/swoole-4.8.9.tgz
下载完之后如下图
解压缩
tar -zxvf swoole-4.8.9.tgz
出现解压后的安装包
效果如下图
在 /usr/local/ 下新建seoole文件夹,知道安装位置
mkdir /usr/local/swoole/
拷贝 /home 目录下的 swoole-4.8.9文件夹 到 /usr/local/swoole/中
cp -r /home/swoole-4.8.9/ /usr/local/swoole/
进入 /usr/local/swoole/swoole-4.8.9 文件夹中
执行如下命令
./configure --with-php-config=/usr/local/php/bin/php-config --enable-sockets --enable-openssl --enable-http2
继续执行如下命令
make clean && make && sudo make install
编译安装正确完成后,会显示 swoole.so的文件路径及 php.ini的 文件路径。此处忘记截图
连续查找 swoole.so 与 php.ini文件路径,方便复制路径并编辑php.ini配置文件
执行 如下命令。
vim /usr/local/php/etc/php.ini
将 extension =/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/swoole.so 加入 /usr/local/php/etc/php.ini 文件中
或者用 如下命令 执行上述编辑
echo ‘extension =/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/swoole.so’ >> /usr/local/php/etc/php.ini
切记,lnmp环境中,如下添加方式’extension=swoole.so’应该是不对的。
echo ‘extension=swoole.so’ >> /usr/local/php/etc/php.ini
此时,可以找到phpfpm 的master process的进程id,kill掉该id, 实现平滑重启php-fpm
执行如下命令,查找进程id
ps -aux | grep php-fpm
效果如图
执行如下命令,kill掉master进程id
kill -SIGUSR2 process_id 此处即为 kill -SIGUSR2 94468
不过我执行完以上命令后,又执行了一次如下命令,使lnmp重启
lnmp restart
至此,swoole,成功安装完成,
输入 php -m 验证一下
进入项目文件夹,php运行 文件,打开 swool服务,可以看到 输出的123 以及 start success的提示,此为swoole服务开启成功
(提示,如果是linux新手,此处要先研究下,虚拟机中的项目文件夹如何绑定宿主机本地文件夹,以便宿主机本地开发,虚拟机验证开发成果)
最后,输入访问 域名 验证一下
成功完结,记录一下。
2、踩坑安装失败记录
下载swoole
wget https://pecl.php.net/get/swoole-4.8.9.tgz
下载完之后如下图
解压缩
tar -zxvf swoole-4.8.9.tgz
出现解压后的安装包
效果如下图
进入安装包
cd swoole-4.8.9
//执行命令
phpize &&
./configure &&
make && sudo make install
执行后会生成以下文件
(说明:其实,在这一步,并没有在安装包文件下找到 modules文件夹。这也造成了后续的安装失败
用如下命令查找文件也没找到)
find / -name swoole.so
这个时候可以查看一下PHP 的php.ini 的路径
有时候lib 里面没有php.ini的,在其他地方复制进去就好了!
在lib 中找到 .so 的文件的文件夹,讲刚才的swoole.so 的文件放进去就好了,像这样
(说明:其实,正确的寻找so文件应该在这边步骤,详情参看 1、正确的安装swoole成功记录)
然后再php.ini 中加上extension=swoole.so ,保存,重启PHP 。
因为我是用php-fpm,我是直接kill 了再打开
输入命令 php -m 查看PHP 加载模块
在我配置了php.ini文件后,
输入 php -m 并没有看到swoole插件
所以运行文件查看效果的时候就报错了。
报错类似如下:
PHP Warning: PHP Startup: Unable to load dynamic library ‘swoole.so’ (tried: /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so