字體:  

在CentOS 7下安裝 php5.6 的swoole擴展

Alex_Chang 發表於: 2021-3-02 10:49 來源: ADJ網路控股集團


PHP 發展至今已經 20 餘年,現今許多網站有相當高的比例都是以 PHP 所建構而成,然而一直以來 PHP 為人所詬病的就是他的效能問題。尤其是現今許多的開發框架雖然強大優雅,但同時也因為框架的複雜度讓 PHP 的效能更加倍放大來檢視,甚至成為許多人不選擇使用框架開發的原因。

Swoole 簡介

首先,Swoole 這個名字源自於作者起出的名字 sword-server,意即希望為廣大的 PHP 開發者創造出一把鋒利的劍,後來又參考 google 的字將sword-server做變形變成了 Swoole 這個名字。


Swoole 並不是一個新的程式語言,他是一個以純 C 語言編寫的 PHP extension,簡單來說他有以下特點:

* 純 C 語言編寫,所以高性能
* 事件驅動 (Event Driven)
* 異步 I/O
* 支援 異步/同步/協程 (Coroutine)
* 支援 TCP/UDP/UnixSock 通信協定
* 支援異步 Server 端和異步 Client 端
* 支援多行程 (Process) 與多執行緒 (Thread)
* 支援 IPv4 與 IPv6
* 低 CPU 消耗與支援 daemon 模式

列了那麼多特點,簡單來說,就是 Swoole 能讓你的 PHP 馬上提升好幾個等級,能達到原生 PHP 不支援的許多功能,雖然 Swoole 並不是第一個支援異步的方案,而 PHP 本身也能使用一些方式達成異步,但是 Swoole 的效能在目前來說還沒有人能與其匹敵,更別說他除了異步還有以上那麼多優秀的功能。

安裝說明:

1. 首先確認是否有安裝 php-devel
# yum install php-devel

CentOS 7 下的 PHP 5.6 安裝 php-devel 似乎有少一個套件 libedit-devel ..所以要手動下載回來安裝
# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
# rpm -Uvh libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm

2. 安裝 swoole 擴展套件
# wget http://pecl.php.net/get/swoole-1.10.5.tgz
# tar zxvf swoole-1.10.5.tgz
# cd swoole-1.10.5

執行查詢出的phpize生成.configure文件,如:

# /usr/bin/phpize

執行成功後查找php-config文件

# find / -name php-config
/usr/bin/php-config

運行編譯配置檢測命令,如:

# ./configure --with-php-config=/usr/bin/php-config
# make
# make install

3. 新增 swoole.ini
echo extension=swoole.so > /etc/php.d/swoole.ini

最後php重新啟動之後..查詢看module是否有載入
# php -m | grep swoole
swoole

有出現就搞定囉~~