最近在学习swoole,本地搭建了虚拟机桌面版Ubuntu,编译安装完PHP7.2,然后按官方文档安装swoole,折腾了两天都没成功。无奈换成centos,用lnmp.org的一键包搭建环境,用一键包会帮我们自动安装超多依赖。我们要明确目标,是来学习swoole的而不是研究php编译或者依赖安装的,然后升级到php7.2,最后安装成功。中间也有几个坑,记录下。

1, 使用lnmp自带命令升级PHP到7.2

# 解压后的目录lnmp1.5下执行
./upgrade.sh php
# 找要升级的版本号 http://php.net/downloads.php 版本 7.2.13 输入
# 等待执行完成

2,安装 swoole

pecl install swoole
# 一路yes, 发现报错 error Enable http2 support, require nghttp2 library 安装失败

3,安装nghttp2

# 打开https://github.com/nghttp2/nghttp2/releases 
# 复制上面网址里nghttp2最新版链接下载
wget xxx 
# 开始安装
tar xf nghttp2-X.Y.Z.tar.bz2
cd nghttp2-X.Y.Z
./configure
make

4,继续安装swoole

pecl install swoole
# 新版安装会自动配置php.ini, 不需要特意去添加extension=swoole.so

5,运行 php -m 查看是否按照成功

php -m 
# swoole模块没有出现,报错 PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so (libnghttp2.so.14: cannot open shared object file: No such file or directory), /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so.so (/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

6,要炸了

# 执行
ldconfig
# 再次查看,出现了,安装成功!
php -m

下面就愉快的进行swoole之旅吧

其他问题

a, vitualbox设置共享目录时,挂载共享目录后,在nginx.conf中设置默认目录为该共享目录,访问ip显示403无权限,查阅资料发现是权限问题。需要将www用户加入vboxsf用户组

# sudo usermod -a -G vboxsf yourusernanme
usermod -a -G vboxsf www
最后编辑:2019年01月08日 ©著作权归作者所有

发表评论