溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Swoole入門指南:PHP7安裝Swoole詳細(xì)教程

發(fā)布時(shí)間:2020-06-15 13:49:07 來(lái)源:網(wǎng)絡(luò) 閱讀:18785 作者:阿澤Aze 欄目:web開發(fā)

Swoole簡(jiǎn)介

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ù)。


Server運(yùn)行流程圖

Swoole入門指南:PHP7安裝Swoole詳細(xì)教程


進(jìn)程/線程結(jié)構(gòu)圖

Swoole入門指南:PHP7安裝Swoole詳細(xì)教程


環(huán)境

用nginx + php-fpm,性能更強(qiáng)大,配置更方便,并且為了跟上php的步伐,也使用了比較新的php版本,我php版本7.0.26。

  • [x] ubuntu-14

  • [x] php7.0.26

  • [x] nginx/1.10.2

  • [x] php-fpm

下載 swoole

方法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

重啟服務(wù)

新增php模塊后,需要重新啟動(dòng)nginx和php-fpm服務(wù),才會(huì)生效。
最后通過(guò)php -m或phpinfo()來(lái)查看是否成功加載了swoole,如圖:
Swoole入門指南:PHP7安裝Swoole詳細(xì)教程

注意:
 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

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI