日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

编译安装 PHP 扩展 - 含 swoole 扩展安装和升级

發(fā)布時(shí)間:2025/3/20 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編譯安裝 Redis 擴(kuò)展 - phpredis
編譯安裝 Swoole 擴(kuò)展
編譯安裝 Pcntl 擴(kuò)展
編譯安裝 Sockets 擴(kuò)展
編譯安裝 Event 擴(kuò)展
編譯安裝 Mongodb 擴(kuò)展
編譯安裝 Memcache 擴(kuò)展

編譯安裝 Redis 擴(kuò)展

predis,是 PHP 代碼實(shí)現(xiàn)原生 redis client,采用socket連接,只依賴于 php 解釋器,無需安裝擴(kuò)展
phpredis(php extension redis)是 C 編寫的 PHP原生擴(kuò)展,支持 php-fmp 模式下的 redis 持久連接
對(duì)比:
功能:區(qū)別不大
性能:c 編寫的 phpredis 性能理論上要好一點(diǎn),但是除非執(zhí)行大量 redis 命令,否則很難有性能上的區(qū)別,因?yàn)?redis 命令的開銷大多在網(wǎng)絡(luò)傳輸上,不過在 php-fpm 模式下,phpredis 的持久連接性能會(huì)比 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
  • phpize 生成配置文件 configure # 為了使用方便可創(chuàng)建軟連接 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
  • 查看是否生成 redis.so ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/redis.so
  • 成功后配置 php.ini sudo vim /usr/local/php/etc/php.ini # 添加配置 extension=redis.so
  • 測(cè)試 - 前提 有可連接的 redis-server
    # 創(chuàng)建文件 sudo touch redis_test.php
  • <?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 則表示成功

    編譯安裝 Swoole 4.2.2 擴(kuò)展

  • 下載解壓 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
  • phpize 生成 ./configure 文件 sudo phpize

    phpize 作用:
    偵測(cè)環(huán)境,根據(jù)當(dāng)前 php 信息生成 ./configure 文件
    為編譯安裝的 php 創(chuàng)建外掛模塊,不用再次編譯 php
    執(zhí)行之后會(huì)生成 ./configure 文件

  • 配置 sudo ./configure --with-php-config=/usr/local/php/bin/php-config # 指定配置,多版本php
  • 編譯 && 測(cè)試 && 安裝 sudo make && sudo make test && sudo make install
  • 查看 swoole.so 是否正常生成 # 編譯完成擴(kuò)展目錄: /usr/local/php/lib/php/extensions 下 ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so
  • php.ini 配置 swoole.so # 查看 php.ini 配置路徑 指令 php -i | grep php.ini # 配置 sudo vim /usr/local/php/etc/php.ini extension=swoole.so
  • 重啟 && 查看擴(kuò)展 sudo service php-fpm reload # 查看 php -m|grep swoole # 查看 swoole 詳細(xì)配置 php --ri swoole
  • 測(cè)試
    # touch http_server.php
  • <?php use Swoole\Http\Server;$http = new Server('127.0.0.1', 9501); $http->on('request', function($request, $response){$response->end("<h1>Hello Swoole . #".rand(1000, 9999)."</h1>"); });$http->start();# 啟動(dòng) http 服務(wù) php http_server.php # 打開瀏覽器訪問 127.0.0.1:9501 ,頁面展示一下內(nèi)容則表示成功 Hello Swoole . #5912
  • 升級(jí)swoole
    重新下載新版 swoole 按照上邊的過程重新走一遍即可,原來的 swoole 不用去管他
  • 編譯安裝 Pcntl 擴(kuò)展

    Pcntl 是 PHP cli 模式下的多進(jìn)程擴(kuò)展,只支持 unix 類系統(tǒng),源碼編譯安裝 php 時(shí),默認(rèn)是關(guān)閉的,需要在編譯時(shí)使用 --enable-pcntl 開啟
    如果已經(jīng)編譯安裝 PHP,pecl 是沒有提供源碼包的,因?yàn)樵创a包已經(jīng)包含在 PHP 源碼中了,只需要到解壓的源碼目錄中去編譯安裝就好了

  • 進(jìn)入源碼目錄 cd /usr/local/src/php-7.2.12/ext/pcntl
  • 生成配置文件 sudo phpize
  • 配置 sudo ./configure --with-php-config=/usr/local/php/bin/php-config
  • 編譯 && 測(cè)試 && 安裝 sudo make && sudo make test && sudo make install
  • 查看 pcntl.so ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/pcntl.so
  • 配置 php.ini sudo vim /usr/local/php/etc/php.ini extension=pcntl.so
  • 重啟 php-fpm sudo service php-fpm reload
  • 測(cè)試 touch pcntl_test.php
  • <?php echo "當(dāng)前進(jìn)程 id:".getmypid().PHP_EOL;// 創(chuàng)建進(jìn)程 $pid = pcntl_fork(); if ($pid < 0) {exit('fork fail'.PHP_EOL); }else if($pid > 0){for ($i=0; $i < 10; $i++) { echo "這是父進(jìn)程 pid:".$pid.PHP_EOL;} }else{for ($i=0; $i <5 ; $i++) { echo "這是子進(jìn)程 pid:".$pid.PHP_EOL;} }php pcntl_test.php

    編譯安裝 Sockets 擴(kuò)展

    升級(jí) re2c
    sudo upgrade re2c

  • 進(jìn)入源碼目錄 cd /usr/local/src/php-7.2.12/ext/sockets
  • 生成 configure 文件 sudo phpize
  • 配置 sudo ./configure --with-php-config=/usr/lcoal/php/bin/php-config
  • 編譯 && 測(cè)試 && 安裝 sudo make && sudo make test && sudo make install
  • 配置 php.ini sudo vim /usr/local/php/etc/php.ini extension=sockets
  • 編譯安裝 Event 擴(kuò)展

    LibEvent 是一個(gè) C 語言編寫的、輕量級(jí)的開源高性能 I/O 框架
    支持多種 I/O 多路復(fù)用:
    epoll、poll、dev/poll、select、kqueue等
    支持 I/O 、定時(shí)器和信號(hào)等事件,支持注冊(cè)事件優(yōu)先級(jí)
    對(duì)應(yīng)擴(kuò)展 libevent 、event
    libevent 不再更新,僅支持 php5, Event 對(duì) php7 支持較好,且提供了面向?qū)ο蠛透嗵匦?/p>

    Event Loop : 事件循環(huán)/輪詢
    依賴于 sockets 擴(kuò)展 --enable-sockets 或者編譯安裝
    event 擴(kuò)展依賴于 Libevent 庫

    • 安裝 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

      編譯安裝 Mongodb 擴(kuò)展

    PHP 有 Mongo 和 Mongodb 兩個(gè)擴(kuò)展Mongo 已經(jīng)廢棄,不支持 PHP7Mongodb 支持 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

    轉(zhuǎn)載于:https://blog.51cto.com/12750968/2323635

    總結(jié)

    以上是生活随笔為你收集整理的编译安装 PHP 扩展 - 含 swoole 扩展安装和升级的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。