Swoole:面向生產環境的 PHP 異步網絡通信引擎
使 PHP 開發人員可以編寫高性能的異步併發 TCP、UDP、Unix Socket、HTTP,WebSocket 服務
Swoole 可以用來做網絡通信、異步操作文件、毫秒級定時器等等,今天就來說一下 Swoole 入門前的準備工作:安裝 PHP7 和 Swoole 擴展
安裝 PHP7
Swoole 作爲 PHP 的擴展,必不可少的就是 PHP 了
Swoole 雖然是標準的 PHP 擴展,實際上與普通的擴展不同。普通的擴展只是提供一個庫函數,而 Swoole 擴展在運行後會接管 PHP 的控制權,進入事件循環,當 IO 事件發生後,Swoole 會自動回調指定的 PHP 函數
先進入到一個目錄中,獲取我們的 PHP 包,進行解壓
$ cd /usr/local/src/
$ wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
$ tar jxvf php-7.1.6.tar.bz2
解壓完成後,進入到 PHP 的目錄當中進行配置,使用如下命令
$ cd php-7.1.6/
$ ./configure --prefix=/usr/local/php7
在配置結束可能會報錯,如下圖
報錯:checking for gcc... no
,表示沒有安裝 gcc,使用以下命令進行安裝
$ yum -y install gcc
$ yum -y install libxml2 libxml2-devel
同樣也可能會報錯 checking libxml2 install dir... no
,所以也最好安裝一下
看到如上圖所示就表示配置成功了,下一步,進行編譯安裝。使用命令:
$ make && make install
如果報錯 -bash:make:command not found
,是因爲安裝系統的時候使用的是最小化 mini 安裝,系統沒有安裝 make、vim 等常用命令,直接 yum 安裝下即可
$ yum -y install make
如下圖所示,表示爲編譯成功
開始下一步操作,複製配置文件到 PHP 目錄中,命令:
$ cp /usr/local/src/php-7.1.6/php.ini-development /usr/local/php7/lib/php.ini
然後一切完成後,我們需要將 PHP 加入環境變量中,打開環境變量配置文件,寫入以下配置,然後重啓服務器或者使用命令讓終端生效配置
$ # 打開環境變量配置文件
$ vi ~/.bash_profile
$ # 寫入以下配置
$ alias php=/usr/local/php7/bin/php #PHP目錄
$ # 讓終端生效
$ source ~/.bash_profile
如果沒有報錯,使用 php -v
能夠查看版本號表示配置成功,也就是我們的 PHP7 安裝成功
安裝 Swoole
使用命令獲取 Swoole 的包,Swoole 項目已收錄到 PHP 官方擴展庫,除了手工下載編譯外,還可以通過 PHP 官方提供的 pecl 命令,一鍵下載安裝 Swoole
$ yum install pcre-devel
$ pecl install swoole
$ # 或者手動安裝
$ wget http://pecl.php.net/get/swoole-2.2.0.tgz
$ tar zxvf swoole-2.2.0.tgz
解壓以後進入到 Swoole 的目錄當中,通過 PHP 的 phpize 文件生成 swoole 的配置文件
/opt/remi/php72/root/usr/bin/phpize
執行phpize可能會提示下面的錯誤,表示php72-php-devel模塊未安裝
Can't find PHP headers in /opt/remi/php72/root/usr/include/php
The php72-php-devel package is required for use of this command
執行 yum install php72-php-devel即可,繼續執行phpize
如果報錯 Cannot find autoconf
的話,使用 yum 安裝一下
$ yum -y install m4 autoconf
然後再執行下面的操作,就可以生成成功,成功以後目錄下如圖的綠色文件
$ ./configure --with-php-config=/opt/remi/php72/root/usr/bin/php-config
生成成功以後,我們就可以進行下一步操作:使用 make 命令進行編譯安裝,編譯安裝成功以後如下圖所示
make && make install
有時候安裝swoole4會報錯,執行
sudo yum install centos-release-scl
sudo yum install devtoolset-7
scl enable devtoolset-7 bash
編譯安裝完成以後配置 php.ini
,加入一下配置
$ extension=swoole.so
通過 php -m
或 phpinfo()
來查看是否成功加載了 Swoole,如果沒有可能是 php.ini
的路徑不對,可以使用 php --ini
來定位到 php.ini
的絕對路徑,加載到了就表明 Swoole 安裝成功