编译安装 Redis 扩展 - phpredis
创新新互联,凭借十多年的网站建设、成都网站设计经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有上千家案例。做网站建设,选创新互联。
编译安装 Swoole 扩展
编译安装 Pcntl 扩展
编译安装 Sockets 扩展
编译安装 Event 扩展
编译安装 Mongodb 扩展
编译安装 Memcache 扩展
predis,是 PHP 代码实现原生 redis client,采用socket连接,只依赖于 php 解释器,无需安装扩展
phpredis(php extension redis)是 C 编写的 PHP原生扩展,支持 php-fmp 模式下的 redis 持久连接
对比:
功能:区别不大
性能:c 编写的 phpredis 性能理论上要好一点,但是除非执行大量 redis 命令,否则很难有性能上的区别,因为 redis 命令的开销大多在网络传输上,不过在 php-fpm 模式下,phpredis 的持久连接性能会比 predis 性能高出一大截
sudo wget https://pecl.php.net/get/redis-4.2.0.tgz
sudo tar -zxvf redis-4.2.0.tgz
cd redis-4.2.0
# 为了使用方便可创建软连接
sudo ln -s /usr/local/php/bin/phpize /usr/bin/phpize
# 生成配置
sudo phpize
sudo ./configure --with-php-config=/usr/local/php/bin/php-config # 指定配置
sudo make && sudo make install
ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/redis.so
sudo vim /usr/local/php/etc/php.ini
# 添加配置
extension=redis.so
connect('127.0.0.1', 6379);
$redis->auth('');
$redis->set('test', 'hello redis');
echo $redis->get('test');
php redis_test.php
打印 hello redis 则表示成功
sudo wget https://gitee.com/swoole/swoole/repository/archive/v4.2.2.zip
sudo apt install unzip
sudo unzip v4.2.2.zip && cd swoole
sudo phpize
phpize 作用:
侦测环境,根据当前 php 信息生成 ./configure 文件
为编译安装的 php 创建外挂模块,不用再次编译 php
执行之后会生成 ./configure 文件
sudo ./configure --with-php-config=/usr/local/php/bin/php-config # 指定配置,多版本php
sudo make && sudo make test && sudo make install
# 编译完成扩展目录: /usr/local/php/lib/php/extensions 下
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so
# 查看 php.ini 配置路径 指令
php -i | grep php.ini
# 配置
sudo vim /usr/local/php/etc/php.ini
extension=swoole.so
sudo service php-fpm reload
# 查看
php -m|grep swoole
# 查看 swoole 详细配置
php --ri swoole
on('request', function($request, $response){
$response->end("Hello Swoole . #".rand(1000, 9999)."
");
});
$http->start();
# 启动 http 服务
php http_server.php
# 打开浏览器访问 127.0.0.1:9501 ,页面展示一下内容则表示成功
Hello Swoole . #5912
Pcntl 是 PHP cli 模式下的多进程扩展,只支持 unix 类系统,源码编译安装 php 时,默认是关闭的,需要在编译时使用 --enable-pcntl 开启
如果已经编译安装 PHP,pecl 是没有提供源码包的,因为源码包已经包含在 PHP 源码中了,只需要到解压的源码目录中去编译安装就好了
cd /usr/local/src/php-7.2.12/ext/pcntl
sudo phpize
sudo ./configure --with-php-config=/usr/local/php/bin/php-config
sudo make && sudo make test && sudo make install
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/pcntl.so
sudo vim /usr/local/php/etc/php.ini
extension=pcntl.so
sudo service php-fpm reload
0){
for ($i=0; $i < 10; $i++) {
echo "这是父进程 pid:".$pid.PHP_EOL;
}
}else{
for ($i=0; $i <5 ; $i++) {
echo "这是子进程 pid:".$pid.PHP_EOL;
}
}
php pcntl_test.php
升级 re2c
sudo upgrade re2c
cd /usr/local/src/php-7.2.12/ext/sockets
sudo phpize
sudo ./configure --with-php-config=/usr/lcoal/php/bin/php-config
sudo make && sudo make test && sudo make install
sudo vim /usr/local/php/etc/php.ini
extension=sockets
LibEvent 是一个 C 语言编写的、轻量级的开源高性能 I/O 框架
支持多种 I/O 多路复用:
epoll、poll、dev/poll、select、kqueue等
支持 I/O 、定时器和信号等事件,支持注册事件优先级
对应扩展 libevent 、event
libevent 不再更新,仅支持 php5, Event 对 php7 支持较好,且提供了面向对象和更多特性Event Loop : 事件循环/轮询
依赖于 sockets 扩展 --enable-sockets 或者编译安装
event 扩展依赖于 Libevent 库
# 下载
sudo wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
# 解压
sudo tar -zxvf libevent-2.1.8-stable.tar.gz
# 配置
cd libevent-2.1.8-stable
sudo ./configure --prefix=/usr/local/lib/libenvent-2.1.8
# 编译
sudo make
# 安装
sudo make install
安装 event
1.下载解压
sudo ln -s /usr/local/php/bin/pecl /usr/bin/pecl
sudo wget http://pecl.php.net/get/event-2.4.1.tgz
tar -zxvf event-2.4.1.tgz && cd event-2.4.1/
2.生成配置 文件 configure
sudo phpize
3.配置
sudo ./configure --with-php-config=/usr/local/php/bin/php-config --with-event-libevent-dir=/usr/local/lib/libenvent-2.1.8/
4.编译 && 安装
sudo make && sudo make test && sudo make install
5.配置 php.ini
sudo vim /usr/local/php/etc/php.ini
# 要在 extension=sockets 之后
extension=event.so
6.重启
sudo service php-fpm reload
php --ri event
PHP 有 Mongo 和 Mongodb 两个扩展 Mongo 已经废弃,不支持 PHP7 Mongodb 支持 PHP7,且具有 Mongodb 的新特性
1.下载解压
sudo wget http://pecl.php.net/get/mongodb-1.5.3.tgz
sudo tar -zxvf mongodb-1.5.3.tgz && cd /usr/local/src/mongodb-1.5.3
2.生成配置文件 configure
sudo phpize
3.配置
sudo ./configure --with-php-config=/usr/local/php/bin/php-config
4.编译 && 安装
sudo make && sudo make install
5.配置 php.ini
sudo vim /usr/local/php/etc/php.ini
extension=mongodb.so
6.重启 php-fpm
sudo service php-fpm reload
7.查看
php --ri mongodb
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。