关于PHP连接池扩展php-cp遇到的那些坑
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_pass 127.0.0.1:9056;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
include fastcgi_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运行服务。
关于PHP连接池扩展php-cp遇到的那些坑的更多相关文章
- 完善Hikari连接池扩展项目HikariApi(ORM)
以前介绍类自定义的Hikari项目,定位于数据库连接池:后扩展了,根据文件名称,以数据库配置文件为基础,支持按照名称多数据操作. 在使用中,发现扩展了SQL语句参数化操作,在管理类中,以扩展方法存在. ...
- weblogic连接池过小导致TPS呈周期性跳坑现象
利用晚上时间跑个12小时稳定性,第二天发现TPS曲线图成了这个样子. 排查步骤: 1.观察TPS图发现,几乎每两个小时TPS掉一次坑,是周期性的,而且TPS有掉到0的现象.LR上也有失败的交易,猜想是 ...
- JDBC之 连接池
JDBC之 连接池 有这样的一种现象: 用java代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接.现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力 ...
- php-cp(php连接池)扩展的安装
今天看到php有连接池的扩展,不管效果怎么样,都值得一试,这样才会有突破. 先从guthub上搜索源码:[ https://github.com/swoole/php-cp ] 通过命令clone到自 ...
- php连接池 php–cp
原文地址:http://blog.sina.com.cn/s/blog_9eaa0f400102v9fd.html 数据库连接池php-cp介绍时间 2015-01-23 11:53:05 数据库连接 ...
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...
- 【JDBC&Dbutils】JDBC&JDBC连接池&DBUtils使用方法(重要)
-----------------------JDBC---------- 0. db.properties文件 driver=com.mysql.jdbc.Driver url=jdbc: ...
- Druid连接池(四)
十七.Druid加密 运维和DBA都不希望把密码明文直接写在配置文件中,Druid提供了数据库密码加密的功能. ConfigFilter的作用包括: 从配置文件中读取配置 从远程http文件中读取配置 ...
- JDBC连接池&DBUtils使用
使用连接池改造JDBC的工具类: 1.1.1 需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...
随机推荐
- Python-12-简单推导
列表推导:从其他列表创建列表 >>> [x * x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 下面实现只打印能 ...
- iOS文字转语音(语音朗读)
1.第一步导入framework 2.导入头文件 #import <AVFoundation/AVSpeechSynthesis.h> 3. 设置代理 并写下面方法 (注:代理方法用不到 ...
- 前端js编码
1.首先是encodeURI和encodeURIComponent: 从名字可以清晰的看出他两都是主要用于url编码的,那之间有什么区别呢?唯一区别就是编码的字符范围,其中 encodeURI方法不会 ...
- CentOS7.5 搭建mycat1.6.6
1.环境及版本 操作系统: CentOS 7.5 数据库:MySQL 5.7.23 jdk:1.8.0_191 mycat:1.6.6.1 cat /etc/centos-release mysq ...
- WebStorm技巧-集成命令行工具插件
打开菜单项 File -> Settings- 搜索插件 CMD Support,并安装. 重启WebStorm,在你的项目中新建一个Cmd script 文件,命名为build.cmd ...
- Flask 学习系列(三)---Jinjia2使用过滤器
再Jinjia2中过滤器是一种转变变量输出内容的技术.··过滤器通过管道符号“|与变量链接,并且可以通过圆括号传递参数” .举例说明: {{my_variable|default('my_variab ...
- calibre电子书管理软件
软件介绍: Calibre 是电子书管理软件,支持 Amazon.Apple.Bookeen.Ectaco.Endless Ideas.Google/HTC.Hanlin Song 设备及格式,功能十 ...
- Git入门学习总结
用了两天时间看完廖雪峰老师的git教程(http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0 ...
- ubuntu下irobot串口通讯
在window下以前就`有一个现成的串口代码.想移植到ubuntu下,发现都不一样了.要重新找个. 折腾了一上午之后,发现自己写这个串口通讯还是有一点难度. 于是,用了github上 Erick Co ...
- BUG严重级别定义及注意事项