參考:https://www.jianshu.com/p/fa2cbf1a9e26
1.更新源
yum update
2.安裝pecl(默認安裝 php7.2 沒有pecl,如果已經安裝可忽略)
yum install php72w-devel
yum install php72w-pear
3.安裝 swoole
pecl install swoole
3.1補充: 關於 Swoole 安裝配置選項:(特別注意:如果有些擴展沒安裝,yes之後後面會報錯)
// 是否啓用 Debug 跟蹤調試 // 啓用後,會在命令行中輸出 Debug 跟蹤 log,我一般禁用此項。 enable debug/trace log support? [no] : no // 是否啓用 PHP Sockets 支持 // 如果你需要用 PHP 編寫 Sockets 服務,可以啓用此項。 enable sockets supports? [no] : yes // 是否啓用 OpenSSL 支持 // 是否啓用 SSL 加密,如果你是通過 Swoole 提供對外的 HTTPS 服務,則需要啓用此項。 // 我的 Mac 是本地開發用,所以不啓用。 enable openssl support? [no] : no // 是否啓用 HTTP2 支持 // 瞭解 HTTP2 新特性 https://zh.wikipedia.org/wiki/HTTP/2 enable http2 support? [no] : yes // 是否啓用異步 Redis 支持 // Swoole 實現了一套支持異步的 Redis 服務端框架 // https://wiki.swoole.com/wiki/page/p-redis_server.html enable async-redis support? [no] : yes // 是否啓用 MySQL 原生支持 enable mysqlnd support? [no] : yes // 是否啓用 PgSQL 協程客戶端支持 enable postgresql coroutine client support? [no] : yes
成功信息
Installing '/usr/lib64/php/modules/swoole.so' Installing '/usr/include/php/ext/swoole/config.h' install ok: channel://pecl.php.net/swoole-4.3.1 configuration option "php_ini" is not set to php.ini location You should add "extension=swoole.so" to php.ini
4. 修改配置
vi /etc/php.ini 中加入
extension=swoole.so
5.重啓
service php-fpm restart
service httpd restart
6.查看
php -m 或者 phpinfo() 查看是否有swoole
7.問題1
PHP Startup: Unable to load dynamic library 'swoole.so' (tried:
/usr/lib64/php/modules/swoole.so (/usr/lib64/php/modules/swoole.so: cannot open shared
object file: No such file or directory), /usr/lib64/php/modules/swoole.so.so
(/usr/lib64/php/modules/swoole.so.so: cannot open shared object file: No such file or
directory)) in Unknown on line 0
解決方法:把3.1補充說明內的全部擴展全部安裝一遍
8.問題2
問題,如果使用php -m或者 phpinfo()查看不到swoole
解決方法:(確定安裝和配置都沒有問題)
1、如果使用兩種方法都無法查看swoole,那麼請執行第五步重啓
2、如果使用php -m無法查看swoole,請使用命令service php-fpm restart重啓
3、如果使用phpinfo()無法查看swoole,請使用命令service httpd restart重啓
9.問題3
問題 C++ preprocessor “/lib/cpp” fails sanity check
解決方法:沒有c++庫
yum install glibc-headers
yum install gcc gcc-c++ gcc-g77
10.問題4
問題:fatal error: openssl/ssl.h: No such file or directory
解決方法:沒有openssl/ssl此類文件或目錄
yum install openssl-devel
11.問題5
問題:error “Enable http2 support, require nghttp2 library.
wget https://github.com/nghttp2/nghttp2/releases/download/v1.34.0/nghttp2-1.34.0.tar.bz2
tar -xjf nghttp2-1.34.0.tar.bz2
12.問題6
問題PHP Warning: Module 'swoole' already loaded in Unknown on line 0
解決方法:
在修改配置時extension=swoole.so別放在最後,最好放在extension=sockets.so後面,