swoole是什么?
1 C语言编写的扩展
2 异步,并行,高性能的网络通信引擎
准备工作
linux环境下开发
php7 swoole2.1 redius
安装php7源码包 安装swoole源码包
源码安装swoole
1 官网https://www.swoole.com/ 下载
wget https://github.com/swoole/swoole-src/archive/v4.0.1.tar.gz
(这里应该下载官方4.0以上版本,如果采取git clone下载压缩包,在编译的时候容易出现错误:
recipe for target 'swoole_http_server.lo' failed make: *** [swoole_http_server.lo] Error 1)
2 按步骤来说,安装源码包需要configure (配置),make(编译),make install(安装)
但是咱们目前下载的swoole包是没有configure文件的,这时候就需要php自带的一个工具:phpize 生成configure文件
在swoole文件夹下 调用phpize,生成configure文件
/home/work/study/soft/php/bin/phpize
注意:明哥安装到这里出现的问题:系统提示autoconf未找到,这里附上解决措施一篇
wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9/
./configure && make && make install
cd ../
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar -zvxf autoconf-2.62.tar.gz
cd autoconf-2.62/
./configure && make && make install
3 ./configure --with-php-config=/home/work/study/soft/php/bin/php-config (指向安装的php7)
4 make && make install
PHP7支持swoole
1 我们安装好了php7也安装好了swoole,当我们打开使用php执行swoole/examples/echo.php时却发现
Class 'swoole_server' not found in /home/swoole-src-4.0.0/examples/server/echo.php:2
这是因为当php运行扩展的时候,需要在php.ini文件进行配置。
这里明哥首先需要说明的是,如果你的php是编译安装的,那么默认是没有php.ini的,你必须自行去源码包里边拷贝。把配置文件放到php指定的配置文件路径中
(1) vi phpinfo.php <?php phoinfo() ?>
(2)php phpinfo.php | grep php.ini 可见php.ini文件路径指向到 /home/work/study/soft/php/lib
(3) 将源码包中的php.ini-development 移动到指向路径中,并改名
cp php.ini-development /home/work/study/soft/php/lib/
2 在php.ini文件中加上swoole扩展
extension= swoole
php -m 后发现,出现扩展中已经出现swoole
3 找到swoole/examples/server/echo.php (swoole默认占用9501端口)
(1)运行echo.php文件 (php echo.php )
(2)检测9501端口是否被占用 netstat -anp | grep 9501 或者 lsof -i:端口号