php – swoole 安裝

Swoole
PHP的異步、並行、高性能網絡通信引擎,使用純C語言編寫,提供了PHP語言的異步多線程服務器,異步TCP/UDP網絡客戶端,異步MySQL,異步Redis,數據庫連接池,AsyncTask,消息隊列,毫秒定時器,異步文件讀寫,異步DNS查詢。 Swoole內置了Http/WebSocket服務器端/客戶端、Http2.0服務器端。
我在 Ubuntu 16 Command-Line 直接鍵入 phpize 出現
The program 'phpize' is currently not installed. You can install it by typing: apt install php7.0-dev
那就代表沒有安裝,我們先安裝它。用 aptitude 搜尋
aptitude search php7.2-dev
- 其中 php7.2-dev 可以更換成你的任何 7.x 版本
aptitude install php7.2-dev
查看安裝好的 phpize 位置
which phpize 會看到如 /usr/bin/phpize
安裝 swoole
方法一
建議可以使用 PHP 官方的 pecl 工具下載,先升級主機預設的 pecl
pecl channel-update pecl.php.net
因為須要 php-devel 擴展,所以安裝或升級成屬於你的版本號。這是 centOS 範例
yum install php72w-devel
透過 pecl 安裝
pecl install swoole
以上若有發生錯誤,可以參考網友發生 phpize 錯誤的文章。
方法二
- cmake
- gcc
- autoconf
- pcre
- make
使用 git
git clone https://github.com/swoole/swoole-src.git
複製後,依序指令
cd swoole-src phpize ./configure make make install
安裝好後,修改 php.ini 。注意 php.ini 有兩個
- /etc/php/7.2/cli/php.ini <—- 務必修改它,因為 swoole 要從 command line 呼叫
- /etc/php/7.2/apache2/php.ini <—- 也可修改它,若要從瀏覽器執行 swoole 就需要修改
** 如果在 cli 底下運行出現 PHP Fatal error: Class ‘swoole_http_server’ not found 那就是改錯 php.ini 了。記得要改 /etc/php/7.2/cli/php.ini。
接著在 extension 的部分新加入 swoole.so,swoole.so 可以明確指定路徑,會在安裝好後的 modules 內
extension=swoole.so //或 extension=/home/ubuntu/swoole-src/modules/swoole.so
存檔後重啟 apache
service apache2 restart
檢查 swoole 是否出現在模組列表
php -m
並使用 phpinfo() 可以查看到 swoole 。
架設完畢後,我們可以寫簡單測試來看看是否正常運作
kevin
2018-03-30 - 16:47
你好, 我安裝完swoole, 輸入 php -m 也有出現
在輸入指令 php swoole.php之前之後,client頁面都出這個錯誤,不太確定原因,想請問可能的原因?
client.html:9 WebSocket connection to ‘ws://chat.websocket.dennings.org:8080/’ failed: Connection closed before receiving a handshake response
(anonymous) @ client.html:9
JSN
2018-04-02 - 13:47
因為你的網址打錯了,要打上你的路徑喔
ttttttt
2018-05-14 - 00:35
你好 git clone 因該是 https://github.com/swoole/swoole-src.git
不知道你是如何clone
JSN
2018-05-14 - 09:30
感謝您的回覆,複製下來的話,可以直接使用 git 工具在你要的路徑下指令: git clone https://github.com/swoole/swoole-src.git 就可以囉