Swoole 是 PHP 的一個擴展,因此安裝 Swoole 本質上就是安裝一個 PHP 擴充功能。 Swoole 僅支援 Linux、FreeBSD、MacOS 三種作業系統。
安裝準備
安裝前必須確保系統已經安裝了下列軟體
php-7.1 或更高版本 gcc-4.8 或更高版本 make autoconf
一般情況下前三個都已安裝,需要安裝autoconf 這個工具。
Linux:yum install autoconf Mac:brew install autoconf
安裝PHP 的Swoole 擴充功能
#1、下載Swoole
下載位址:https://github.com/swoole/swoole-src /releases
一般情況下,下載最新版本即可。
2、解壓縮到 PHP 擴充目錄中,例如我的解壓縮路徑是:
/Applications/MAMP/bin/php/php7.2.10/include/php/ext/
解壓縮出來的目錄可以命名為 swoole 。
3、進入解壓縮的swoole 目錄中,執行phpize 指令,若指令沒有加入環境變數的話,可以執行絕對路徑
sudo /Applications/MAMP/bin/php/php7.2.10/bin/phpize
由於我的電腦上存在多個PHP版本,所以我指定了現在使用的版本來執行命令。
指令路徑:/php安裝目錄/bin/phpize
4、執行指令:
./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.10/bin/php-config --enable-openss --enable-http2
特定路徑依實際情況修改。
5、執行指令:
make && make install
成功後,會出現安裝的位址,例如我的位址是:
/Applications/MAMP/bin/php/php7.2.10/lib/php/extensions/no-debug-non-zts-20170718/
進入這個目錄,看裡面是否有swoole. so 。
6、在 php.ini 中加入 swoole 擴充。
一定要選擇目前使用的 PHP 版本設定文件,可以使用 php --ini 指令查看。我的是在:
/Applications/MAMP/bin/php/php7.2.10/conf/php.ini
打開php.ini 文件,添加擴展:
extension=”/Applications/MAMP/bin/php/php7.2.10/lib/php/extensions/no-debug-non-zts-20170718/swoole.so”
如果使用MAMP 集成環境的話,除了修改上述php.ini 文件,還需要修改集成環境動態配置的php.ini 文件,可在面板php 選項中點選版本後的箭頭,或File -> Edit Template -> PHP -> PHP 7.xx -> php.ini 進行修改。
7、安裝完成,執行指令:
php -m
看清單中是否有 swoole 模組,若有則安裝成功。
執行 php --ri swoole 指令,可查看 swoole 相關資訊。
8、測試
進入到下面的路徑,具體根據實際修改:
/Applications/MAMP/bin/php/php7.2.10/include/php/ext/swoole/examples/server
裡面有個echo.php 文件,打開後看到有一行程式碼:
$serv = new swoole_server("0.0.0.0", 9501);
意思是監聽所有IP ,連接埠號碼為9501。
在命令列中,輸入命令:
php echo.php
若命令在執行中,沒有遊標,也不報錯,那麼新建命令窗口,並輸入如下命令:
Linux: netstat -anp | grep 9501 Mac: ps -ef | grep 9501
可以看到這個進程已經在執行中了,並且有pid 進程號,測試成功!
在 ThinkPHP 框架中安裝 Think-Swoole 擴充功能
PHP 擴充功能安裝好之後,就要在框架中安裝擴充功能了。
首先,我們要先下載好ThinkPHP 框架(Think-Swoole 擴充功能目前支援ThinkPHP 5.1 和ThinkPHP 6,為了示範一些新功能,後面文章將會使用最新的ThinkPHP 6 框架),然後到框架根目錄下執行Think-Swoole 的安裝指令:
ThinkPHP 5.1 安裝指令
ThinkPHP 6 安裝指令
安裝完成後,執行指令:
php think swoole
若看到下圖提示,則外掛程式可以正常使用:
錯誤一:
我安裝好執行上述指令的時候報錯了,查看報錯提示,發現是不能使用Xdebug 這個插件,關閉就可以了。 MAMP 環境下,在 php 選項內可直接關閉。
錯誤二:
[Swoole\Exception] failed to listen server port[127.0.0.1:80], Error: Permission denied[13]
打開app/config/swoole.php ,可以看到port 對應的是80 端口,因為Linux 和Mac 中,1024 及以下端口只有超級管理員有使用權限,因此可將連接埠改為9501 即可( host 預設是127.0.0.1 ,代表監聽本地位址,這裡順便更改為0.0.0.0 ,表示監聽所有位址)。
swoole 服務開啟後,來測試一下,瀏覽器中輸入127.0.0.1:9501 ,則可以正常存取:
##################################################################都也表明, Swoole 自備HTTP Server,幫我們開啟了一個http 服務,作用等效於Apache 和Nginx。 ######至此,Think-Swoole 外掛程式安裝完成。 ###以上是Think-Swoole教程之安裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!