環(huán)境
這里不在使用apache做為web server。該用nginx + php-fpm,性能更強大,配置更方便。并且為了跟上php的步伐,也使用了比較新的php版本
[x] centos7[x] php7.0.12[x] nginx/1.10.2[x] php-fpm
下載 swoole
首先下載swoole的源碼包,這個操作很簡單,沒有太多說的。
wget?-c?https://github.com/swoole/swoole-src/archive/v2.0.6.tar.gz
解壓:?
立即學(xué)習(xí)“PHP免費學(xué)習(xí)筆記(深入)”;
tar?-zxvf?v2.0.6.tar.gz cd?swoole-src-2.0.6/
編譯&安裝
使用phpize來生成php編譯配置
./configure 來做編譯配置檢測
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
make install后,如果正確,會出現(xiàn)以下內(nèi)容
[root@php7?swoole-src-2.0.6]#?make?install Installing?shared?extensions:?????/usr/lib64/php/modules/
這表示,在 /usr/lib64/php/modules/ 目錄中,成功生成了 swoole.so 文件
修改配置文件
要能夠使用該模塊,還需要在 php.ini 文件中添加該模塊。
這里需要注意,php7的模塊配置文件均單獨分開了。?
在 php.ini 中可找到如下內(nèi)容
;;;;? ;?Note:?packaged?extension?modules?are?now?loaded?via?the?.ini?files? ;?found?in?the?directory?/etc/php.d;?these?are?loaded?by?default.? ;;;;
因此,如果你的php安裝時,如果未特殊設(shè)置,可以在/etc/php.d 目錄中,找到添加模塊的配置文件。
進(jìn)入到 cd /etc/php.d 目錄,完成相關(guān)的配置
[root@php7?swoole-src-2.0.6]#?vim?swoole.ini
;?Enable?swoole?extension?module extension=swoole.so
重啟服務(wù)
新增php模塊后,需要重新啟動服務(wù),才會生效,如果有時候restart后依然無效,請先關(guān)閉,再重新啟動。
[root@php7?swoole-src-2.0.6]#?systemctl?restart?nginx [root@php7?swoole-src-2.0.6]#?systemctl?restart?php-fpm
通過php -m或phpinfo()來查看是否成功加載了swoole
swoole 代碼的自動提示
安裝好擴(kuò)展后,就是使用的問題。由于沒有代碼的提示,有時候很不方便,github上有人已經(jīng)提供了swoole代碼提示的 ide-helper 。具體設(shè)置辦法如下:
這里以: phpStorme 為例,download 代碼到本地
git?clone?git@github.com:eaglewu/swoole-ide-helper.git?ide-helper
經(jīng)過以上步驟,可以在 phpStorme 中使用swoole了。并且提供代碼提示。
簡單測試
所有的測試代碼均放在這里
請將該代碼 clone 到本地,方便觀察效果。
git?clone?git@github.com:helei112g/learn-swoole.git
本節(jié)所提供的代碼實例 demo1-serv
進(jìn)入到測試代碼目錄,
然后在服務(wù)端使用 telnet 進(jìn)行測試
首先,運行服務(wù)端的監(jiān)聽程序
php?demo1-serv.php
執(zhí)行這個命令后,服務(wù)器會顯示:
Client:?Connect.
另外開一個終端,使用 telnet 連接當(dāng)前服務(wù)端監(jiān)聽的端口,并且輸入一些文字,觀察終端的變化。
[root@php7?~]#?telnet?127.0.0.1?9999
Hi! Server:?Hi!
這里只是進(jìn)行簡單的模擬回復(fù)??蛻舳税l(fā)什么,服務(wù)器就回應(yīng)什么消息。?
退出telnet,觀察服務(wù)器會顯示什么?
直接關(guān)閉窗口,或者:
[root@php7?~]#?Ctrl+] [root@php7?~]#?telnet>?quit
此時,會在服務(wù)側(cè)看到:
Client:?Close.
PS:如果測試環(huán)境沒有安裝 telnet ,請自行g(shù)oogle安裝。
PHP中文網(wǎng),大量的免費swoole入門教程,歡迎在線學(xué)習(xí)!