php-cp是国内大神写的php第三方扩展,具体就不用多说了,细读https://github.com/swoole/php-cp,下面来说说今天安装方法。
环境:CentOS7.2.1511
由于本身已经安装过lnmp7环境,而php-cp对php7支持不太好,于是在此基础上再安装php5.6.30,两个php版本切换用。
#安装配置
./configure --prefix=/usr/local/php5.6\--with-gd \--with-freetype-dir\--enable-gd-native-ttf \--enable-mysqlnd \--with-pdo-mysql=mysqlnd \--with-openssl \--with-mcrypt \--enable-mbstring \--enable-zip \--enable-fpm
make
make install
#复制配置文件
cp /源码包/php.ini-development /usr/local/php5.6/lib/php.ini
cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
cp /usr/local/php5.6/etc/php-fpm.d/www.conf.default /usr/local/php5.6/etc/php-fpm.d/www.conf
#修改fpm监听端口,防止与php7端口冲突
vi/usr/local/php5.6/etc/php-fpm.conf
修改为:
listen= 127.0.0.1:9056
#修改 nginx 监听 php5.6 的9056端口vi /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
root html;
fastcgi_pass127.0.0.1:9056;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME$DOCUMENT_ROOT$fastcgi_script_name;includefastcgi_params;
}
#关闭nginx并重启
ps -aux |grep nginx
kill-INT XXX/usr/local/nginx/sbin/nginx#关闭php7的fpm
ps -aux |grep fpm
kill-INT XXX#启动php5.6的fpm
/usr/local/php5.6/sbin/php-fpm
#避免麻烦,把php和phpize都加入到/usr/local/bin中
ln -s /usr/local/php5.6/bin/php /usr/local/bin/php5
ln-s /usr/local/php5.6/bin/phpize /usr/local/bin/phpize5
下载php-cp-master,是个zip压缩包
unzip master.zip
cd php-cp-master
phpize5./configure --with-php-config=/usr/local/php5.6/bin/php-config
make
make install#官方make & make install ,但我建议分开写
配置php.ini
echo "extension=connect_pool.so" >> /usr/local/php5.6/lib/php.ini
下面官网配置
cp ./config.ini.example /etc/pool.ini //根据需求修改配置内容
mkdir -m 755 /var/log/php-connection-pool //创建日志目录 目录文件夹不存在或没权限会导致日志写不起
chmod +x ./pool_server //x权限git已经设置 为稳妥再设置一次 pool_server为php脚本 可自行修改
[ -f /bin/env ] || sudo ln -s /usr/bin/env /bin/env //deb系的系统(如debian、ubuntu)env的路径为/usr/bin/env做软链接兼容处理
平滑重启fpm
ps -aux |grep fpm
kill-USR2 xxx
查看php扩展是否有connect_pool,有即成功,无则算了
php5 -m
[PHP Modules]
connect_pool
Core
ctype....
连接池服务使用:
cp ./pool_server /usr/local/bin/pool_server
pool_server start//启动服务 如果配置文件的daemonize开启则后台运行 否则为前台运行 Ctrl+c结束服务
pool_server stop //停止服务
pool_server restart //重启服务
pool_server status //查看服务状态
坑:目录下有一个pool_server ,官网是直接将其复制到/usr/local/bin中执行,但前提是你必须将php加入到linux环境中,如果没有,则会报错。
解决方法:
1,php加入到环境变量中
2,使用 php5 pool_server start运行服务。