swoole 編譯安裝
Swoole編譯安裝步驟
Swoole擴充套件是按照php標準擴充套件構建的。使用phpize來生成php編譯配置,./configure來做編譯配置檢測,make進行編譯,make install進行安裝。
- 請下載releases版本的swoole,直接從github主幹上拉取最新程式碼可能會編譯不過
- 如果當前使用者不是root,可能沒有php目錄的寫許可權,安裝時需要 sudo或者 su
- 如果是在git分支上直接 git pull更新程式碼,重新編譯前務必要執行 make clean
安裝準備
安裝swoole前必須保證系統已經安裝了下列軟體
php-5.3.10 或更高版本 gcc-4.4 或更高版本 make autoconf
下載地址
下載原始碼包後,在終端進入原始碼目錄,執行下面的命令進行編譯和安裝
cd swoole phpize ./configure make sudo make install
(注:swoole的./configure有很多額外引數,可以通過./configure --help命令檢視,這裡僅開啟其中async-mysql項,其他均選擇預設項) 這裡是./configure編譯配置的額外引數,用於開啟某些特性
--enable-swoole-debug
開啟除錯日誌,開啟此選項後swoole將列印各類細節的除錯日誌。生產環境不要啟用。
--enable-sockets
增加對sockets資源的支援,依賴sockets擴充套件。開啟此引數,swoole_event_add就可以新增sockets擴充套件建立的連線到swoole的事件迴圈中。
--enable-async-mysql
增加非同步mysql支援, 依賴mysqli和mysqlnd擴充套件。
--enable-async-redis
增加非同步Redis客戶端支援, 依賴hiredis庫
--enable-async-httpclient
增加非同步Http和WebSocket客戶端支援
--enable-ringbuffer
開啟RingBuffer記憶體池
此設定為試驗性質,主要用於提升效能,生產環境請不要開啟
--enable-openssl
啟用SSL支援
滔
swoole專案已收錄到PHP官方擴充套件庫,除了手工下載編譯外,還可以通過PHP官方提供的pecl命令,一鍵下載安裝swoole
pecl install swoole
配置php.ini
編譯安裝成功後,修改php.ini加入
extension=swoole.so
通過php -m或phpinfo()來檢視是否成功載入了swoole,如果沒有可能是php.ini的路徑不對,可以使用php -i |grep php.ini來定位到php.ini的絕對路徑。
安裝常見錯誤
make或make install無法執行或編譯錯誤
注意:PHP 訊息:PHP 警告:PHP 啟動:swoole:無法初始化模組
API 編譯的模組=20090626使用模組 API 編譯的
PHP=20121212
這些選項需要在 0 行的“未知”中匹配
php版本和編譯時使用的phpize和php-config不對應,需要使用絕對路徑來進行編譯。使用絕對路徑執行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
缺少mysql標頭檔案
php_mysqli_structs.h:64:23: fatal error: my_global.h: No such file or directory
沒有找到mysqlclient的標頭檔案,需要安裝mysqlclient-dev
建議自行編譯php,不要使用Linux包管理系統自帶的php版本
缺少pcre.h標頭檔案
fatal error: pcre.h: No such file or directory
原因是缺少pcre,
找不到自動
phpize命令需要autoconf工具,請先安裝它。
使安裝失敗
make install需要root許可權,如果不是以root使用者登入的,請用sudo或su,再進行安裝。
修改了php.ini後,php -m或phpinfo中沒有swoole
php -i|grep php.ini
檢視載入的php.ini路徑,確認載入了正確的php.ini。
修改php.ini,開啟錯誤顯示,檢視是否存在啟動時錯誤。
display_errors => On display_startup_errors => On
錯誤:引數過多,無法執行“zend_exception_error”
你的PHP版本低於PHP-5.3.10,請升級PHP版本。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70018476/viewspace-2902538/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- homestead 多版本 編譯安裝swoole編譯
- Mac air 指定 PHP 版本編譯安裝指定 swooleMacAIPHP編譯
- 安裝 Swoole
- 編譯安裝zabbix編譯
- apache編譯安裝Apache編譯
- 編譯安裝nmon編譯
- 編譯安裝Nginx編譯Nginx
- 編譯安裝mysql編譯MySql
- nginx編譯安裝Nginx編譯
- 安裝編譯ffmpeg編譯
- Griffin編譯安裝編譯
- Shell編譯安裝nginx編譯Nginx
- centos PHP 編譯安裝CentOSPHP編譯
- httpd編譯安裝phphttpd編譯PHP
- PHP的編譯安裝PHP編譯
- Mysql 5.7.17 編譯安裝MySql編譯
- ffmpeg安裝之linux編譯安裝Linux編譯
- Swoole安裝問題
- CentOS 下編譯安裝 NginxCentOS編譯Nginx
- CentOS 下編譯安裝 apacheCentOS編譯Apache
- Mac 編譯安裝 PHPRedis 模組Mac編譯PHPRedis
- PHP7 編譯安裝PHP編譯
- Linux編譯安裝NginxLinux編譯Nginx
- CentOS 6.4 編譯安裝 apacheCentOS編譯Apache
- ubuntu編譯安裝kernel教程。Ubuntu編譯
- windows下編譯安裝thriftWindows編譯
- 編譯安裝php7編譯PHP
- php7編譯安裝PHP編譯
- 原始碼編譯安裝Redis原始碼編譯Redis
- 編譯安裝LAMP環境編譯LAMP
- LNMP—Nginx的編譯安裝LNMPNginx編譯
- LAMP原始碼編譯安裝LAMP原始碼編譯
- php5.5.38編譯安裝PHP編譯
- PHP編譯安裝引數PHP編譯
- LNMP編譯安裝配置+discuzLNMP編譯
- ubuntu thrift 0.9.3編譯安裝Ubuntu編譯
- 編譯安裝php5.6.2編譯PHP
- ubuntu下 編譯安裝swftoolsUbuntu編譯