Swoole擴(kuò)展是按照php標(biāo)準(zhǔn)擴(kuò)展構(gòu)建的。使用phpize來(lái)生成php編譯配置,./configure來(lái)做編譯配置檢測(cè),make進(jìn)行編譯,make install進(jìn)行安裝。
安裝swoole前必須保證系統(tǒng)已經(jīng)安裝了下列軟件
php-5.3.10 或更高版本 gcc-4.4 或更高版本 make autoconf
下載源代碼包后,在終端進(jìn)入源碼目錄,執(zhí)行下面的命令進(jìn)行編譯和安裝
cd swoole phpize ./configure make sudo make install
(注:swoole的./configure有很多額外參數(shù),可以通過(guò)./configure --help命令查看,這里僅開(kāi)啟其中async-mysql項(xiàng),其他均選擇默認(rèn)項(xiàng)) 這里是./configure編譯配置的額外參數(shù),用于開(kāi)啟某些特性
swoole項(xiàng)目已收錄到PHP官方擴(kuò)展庫(kù),除了手工下載編譯外,還可以通過(guò)PHP官方提供的pecl命令,一鍵下載安裝swoole
pecl install swoole
編譯安裝成功后,修改php.ini加入
extension=swoole.so
通過(guò)php -m或phpinfo()來(lái)查看是否成功加載了swoole,如果沒(méi)有可能是php.ini的路徑不對(duì),可以使用php -i |grep php.ini來(lái)定位到php.ini的絕對(duì)路徑。
NOTICE: PHP message: PHP Warning: PHP Startup: swoole: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20121212
These options need to match
in Unknown on line 0
php版本和編譯時(shí)使用的phpize和php-config不對(duì)應(yīng),需要使用絕對(duì)路徑來(lái)進(jìn)行編譯。使用絕對(duì)路徑執(zhí)行PHP。
/usr/local/php-5.4.17/bin/phpize ./configure --with-php-config=/usr/local/php-5.4.17/bin/php-config /usr/local/php-5.4.17/bin/php server.php
php_mysqli_structs.h:64:23: fatal error: my_global.h: No such file or directory
沒(méi)有找到mysqlclient的頭文件,需要安裝mysqlclient-dev
建議自行編譯php,不要使用Linux包管理系統(tǒng)自帶的php版本
fatal error: pcre.h: No such file or directory
原因是缺少pcre,需要安裝libpcre
phpize命令需要autoconf工具,請(qǐng)先安裝它。
make install需要root權(quán)限,如果不是以root用戶(hù)登錄的,請(qǐng)用sudo或su,再進(jìn)行安裝。
php -i|grep php.ini
查看加載的php.ini路徑,確認(rèn)加載了正確的php.ini。
修改php.ini,打開(kāi)錯(cuò)誤顯示,查看是否存在啟動(dòng)時(shí)錯(cuò)誤。
display_errors => On display_startup_errors => On
你的PHP版本低于PHP-5.3.10,請(qǐng)升級(jí)PHP版本。
不要?dú)怵H,加入我們的開(kāi)發(fā)組QQ群:495864936,你的問(wèn)題會(huì)在24小時(shí)內(nèi)被解決。
更多建議: