您好,登錄后才能下訂單哦!
Swoole是:PHP語(yǔ)言的高性能網(wǎng)絡(luò)通信框架,提供了PHP語(yǔ)言的異步多線程服務(wù)器,異步TCP/UDP網(wǎng)絡(luò)客戶端,異步MySQL,數(shù)據(jù)庫(kù)連接池,AsyncTask,消息隊(duì)列,毫秒定時(shí)器,異步文件讀寫,異步DNS查詢。 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.因此引入類/函數(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
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。