近期在使用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安装后支持的模块了。