您好,登錄后才能下訂單哦!
編譯安裝 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
<?php
$redis = new Redis() or die("can't load redis modules");
$redis->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
<?php
use Swoole\Http\Server;
$http = new Server('127.0.0.1', 9501);
$http->on('request', function($request, $response){
$response->end("<h2>Hello Swoole . #".rand(1000, 9999)."</h2>");
});
$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
<?php
echo "當前進程 id:".getmypid().PHP_EOL;
// 創建進程
$pid = pcntl_fork();
if ($pid < 0) {
exit('fork fail'.PHP_EOL);
}else if($pid > 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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。