安裝 Swoole
如果您不想安裝 Swoole
擴(kuò)展,您可以使用 Docker
進(jìn)行開發(fā),EasySwoole
官方提供了符合需求的 Docker 鏡像,
easyswoole/docker 項(xiàng)目?jī)?nèi)已經(jīng)為您準(zhǔn)備好了各種版本的 Dockerfile
,或直接基于已經(jīng)構(gòu)建好的 easyswoolexuesi2021/easyswoole 鏡像來(lái)運(yùn)行。
下載
首先進(jìn)入 Swoole
的 Github
下載地址: https://github.com/swoole/swoole-src/releases
如果沒有特殊需求,請(qǐng)選擇最新穩(wěn)定版本開始下載(我這里是穩(wěn)定版v4.8.13):
## 下載
[root@easyswoole tmp]$ wget https://github.com/swoole/swoole-src/archive/v4.8.13.tar.gz
# 如果使用 github 下載慢,請(qǐng)到 pecl 進(jìn)行下載
# [root@easyswoole tmp]$ wget https://pecl.php.net/get/swoole-4.8.13.tgz
## 解壓到當(dāng)前目錄
[root@easyswoole tmp]$ tar -zvxf v4.8.13.tar.gz
## cd 到解壓之后的目錄
[root@easyswoole tmp]$ cd swoole-src-4.8.13/
## 使用 phpize 創(chuàng)建 php 編譯檢測(cè)腳本 ./configure
##【注意:需要選擇 php 對(duì)應(yīng)版本的 phpize,這里使用的是絕對(duì)路徑,否則編譯安裝無(wú)法生效】
[root@easyswoole swoole-src-4.8.13]$ /usr/local/php-8.1.22/bin/phpize
## 創(chuàng)建編譯文件,第一個(gè) --with,后面是 php-config 的所在路徑(這個(gè)路徑一般和 php 在同一個(gè)目錄) /usr/local/php-8.1.22/bin/php-config,第二個(gè) --enable,是開啟 Swoole 的 ssl 功能,第三個(gè) --enable(可選參數(shù)),是開啟 Swoole 支持 http2 相關(guān)的功能
[root@easyswoole swoole-src-4.8.13]$ ./configure --with-php-config=/usr/local/php-8.1.22/bin/php-config --enable-openssl --enable-http2
## 編譯 Swoole 并把編譯好的文件移動(dòng)到 php 的擴(kuò)展目錄(前面的配置 php 版本的擴(kuò)展目錄) 需要root權(quán)限
[root@easyswoole swoole-src-4.8.13]$ sudo make && make install
## 編譯成功會(huì)顯示如下:
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php-8.1.22/lib/php/extensions/no-debug-non-zts-20160303/
Installing header files: /usr/local/php-8.1.22/include/php/
這個(gè)時(shí)候已經(jīng)安裝成功,需要修改 php
配置文件 php.ini
,在最后面增加如下內(nèi)容:
extension=swoole.so
注意:不知道 php.ini 所在目錄時(shí),您可以通過(guò)運(yùn)行 php --ini
確定。
例如,我這里 php.ini
是在 /usr/local/php-8.1.22/etc
目錄:
[root@easyswoole swoole-src-4.8.13]$ php --ini
Configuration File (php.ini) Path: /usr/local/php-8.1.22/etc
Loaded Configuration File: /usr/local/php-8.1.22/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
成功安裝 Swoole
之后,通過(guò) php --ri swoole
查看 Swoole 擴(kuò)展
的信息:
[root@easyswoole swoole-src-4.8.13]$ php --ri swoole
swoole
Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 4.8.13
Built => Jan 23 2021 18:16:30
coroutine => enabled
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
openssl => OpenSSL 1.0.2k-fips 26 Jan 2017
http2 => enabled
pcre => enabled
zlib => 1.2.7
mutex_timedlock => enabled
pthread_barrier => enabled
futex => enabled
async_redis => enabled
Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.enable_library => On => On
swoole.enable_preemptive_scheduler => Off => Off
swoole.display_errors => On => On
swoole.use_shortname => On => On
swoole.unixsock_buffer_size => 8388608 => 8388608
到此,Swoole
擴(kuò)展就安裝完畢。
常見問(wèn)題
phpize 命令不存在
安裝 phpize
yum install php-devel ## centos
sudo apt-get install php-dev ## ubuntu
提示 swoole.so.so 類似的報(bào)錯(cuò)
說(shuō)明你的 phpize
版本和 php-config
設(shè)定的版本不一致,請(qǐng)重新編譯
phpize
命令也可以使用絕對(duì)路徑: php安裝路徑/bin/phpize
用于執(zhí)行創(chuàng)建編譯文件。
在之后的 --with-php-config
也得使用同樣的路徑: php安裝路徑/bin/php-config
安裝成功 php --ri 沒有 Swoole 擴(kuò)展信息
說(shuō)明你的 php
命令行版本,和安裝 Swoole
的 php
版本不一致,可以通過(guò): php安裝路徑/bin/php --ri swoole
進(jìn)行確認(rèn)是否安裝成功