php8.2安装swoole扩展

发布时间 2023-06-12 15:45:28作者: 秋江月

近期在使用php8.2时,需要使用到swoole,于是开始在php8.2的环境下配置swoole的扩展,环境为ubuntu22.0.4。

下一篇中会说如何在docker中安装swoole扩展,以及创建hyperf项目。

php.net网站中下载php8.2的压缩文件,也可以通过wget的方式下载:

cd ~/Downloads
wget -o https://www.php.net/distributions/php-8.2.7.tar.gz

然后提取文件,如果是桌面版可以直接鼠标右键的方式选中文件点击提取,或者使用命令:

tar -zxvf php-8.2.7.tar.gz #8.2.7

然后将php复制到想放置的位置:

cp -r php8.2.7 /usr/local/php8

下一步是扩展下载以及进行编译,根据个人的需求下载扩展:

sudo apt-get install openssl  -y #安装所需要的依赖库
cd /usr/local/php8
./configure --prefix=/usr/local/php8 \
--with-config-file=/usr/local/php/etc \
--enable-debug \ #因为是开发环境所以,启动debug
--enable-fpm \
--with-openssl \
--with-mysqli \
--enable-sockets \
--enable-xml \
--enable-pcntl \
--enable-json \
--enable-pdo \
--with-curl \
--with-gd \
--enable-bcmath
......

编译成功后会提示,“thank for you using PHP”

然后执行下面命令:

sudo make && sudo make install

到这儿php算是安装完成了,但是我们需要的是把swoole扩展安装上,所以继续:

pecl install swoole

可能会出现报错:

WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user

根据报错信息可知,是没有权限:

sudo chmod -R 777 /usr/local/php

接着进行:

sudo pecl channel-update pecl.php.net
sudo pecl install swoole

安装完成后会出现下面信息:

install ok: channel://pecl.php.net/swoole-XXX
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini

根据提示追加信息到php.ini文件中:

echo 'extension=swoole.so'>> /usr/local/php/etc/php.ini

到此swoole已经安装成功。

 

PS:

如果需要,我们还需要把php通过软链接的方式放入自启动中:

ln -s /usr/local/php/bin /bin

通过这一步,可以直接使用php了:

php -m

如果成功则会看到php安装后支持的模块了。