Swoole是:PHP語(yǔ)言的高性能網(wǎng)絡(luò)通信框架,提供了PHP語(yǔ)言的異步多線程服務(wù)器,異步TCP/UDP網(wǎng)絡(luò)客戶(hù)端,異步MySQL,數(shù)據(jù)庫(kù)連接池,AsyncTask,消息隊(duì)列,毫秒定時(shí)器,異步文件讀寫(xiě),異步DNS查詢(xún)。 Swoole雖然是標(biāo)準(zhǔn)的PHP擴(kuò)展,實(shí)際上與普通的擴(kuò)展不同。普通的擴(kuò)展只是提供一個(gè)庫(kù)函數(shù)。而swoole擴(kuò)展在運(yùn)行后會(huì)接管PHP的控制權(quán),進(jìn)入事件循環(huán)。當(dāng)IO事件發(fā)生后,swoole會(huì)自動(dòng)回調(diào)指定的PHP函數(shù)。
用nginx + php-fpm,性能更強(qiáng)大,配置更方便,并且為了跟上php的步伐,也使用了比較新的php版本,我php版本7.0.26。
[x] ubuntu-14
[x] php7.0.26
[x] nginx/1.10.2
方法1
:首先下載swoole的源碼包
wget -c https://github.com/swoole/swoole-src/archive/v2.0.6.tar.gz
解壓: tar -zxvf v2.0.6.tar.gz
方法2
:
從 https://github.com/swoole/swoole-src/releases 下載
cd swoole-src-2.0.6/ 下,
1.使用phpize來(lái)生成php編譯配置
2.使用./configure 來(lái)做編譯配置檢測(cè)
3.make進(jìn)行編譯,make install進(jìn)行安裝
命令執(zhí)行如下:
[root@php7 swoole-src-2.0.6]# phpize
[root@php7 swoole-src-2.0.6]# ./configure
[root@php7 swoole-src-2.0.6]# make && make install
4.make install后,如果正確,會(huì)出現(xiàn)以下內(nèi)容
[root@php7 swoole-src-2.0.6]# make install
Installing shared extensions: /usr/lib64/php/modules/
要能夠使用該模塊,還需要在 php.ini 文件中添加該模塊。
extension=swoole.so
新增php模塊后,需要重新啟動(dòng)nginx和php-fpm服務(wù),才會(huì)生效。
最后通過(guò)php -m或phpinfo()來(lái)查看是否成功加載了swoole,如圖:
注意:
1.swoole_server只能用于php-cli環(huán)境,否則會(huì)拋出致命錯(cuò)誤。
2.因此引入類(lèi)/函數(shù)的php文件時(shí)必須要使用include_once或require_once,否會(huì)發(fā)生cannot redeclare function/class 的致命錯(cuò)誤。
3.不要用exit()/die(),會(huì)導(dǎo)致worker進(jìn)程退出。
4.PHP代碼中如果有異常拋出,必須在回調(diào)函數(shù)中進(jìn)行try/catch捕獲異常,否則會(huì)導(dǎo)致工作進(jìn)程退出。
參考:
1.https://wiki.swoole.com/wiki/page/1.html
2.https://segmentfault.com/a/1190000007614502
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。