下面是在Linux下安装openssl和swoole扩展的详细步骤:
安装openssl
-
进入openssl官网(https://www.openssl.org/),下载最新的openssl源码包(如openssl-1.1.1k.tar.gz)。
-
解压缩源码包:
tar -zxvf openssl-1.1.1k.tar.gz
- 进入解压后的目录,执行以下命令:
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
- 执行make及安装命令:
make && make install
- 添加openssl库文件到动态链接库中:
echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
ldconfig
安装swoole
-
在Linux系统下,因为swoole扩展需要依赖openssl扩展,因此需要先安装openssl扩展(参考上面openssl的安装步骤)。
-
下载swoole源码包(如swoole-4.7.1.tgz),并进行解压缩:
tar -zxvf swoole-4.7.1.tgz
- 进入解压后的swoole目录中,执行以下命令:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-openssl --enable-http2
make && make install
其中,–enable-openssl参数用于启用openssl扩展,–enable-http2参数用于启用HTTP2协议。
- 在PHP配置文件中(如php.ini)中添加swoole扩展的配置信息:
extension=swoole.so
至此在Linux系统中安装openssl、swoole扩展的步骤就完成了。
示例1:以CentOS 7.8为例,安装openssl和swoole扩展,PHP版本为7.4.20
// 安装openssl
yum install -y zlib-devel
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar -zxvf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make && make install
echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
ldconfig
// 安装swoole
wget https://pecl.php.net/get/swoole-4.7.1.tgz
tar -zxvf swoole-4.7.1.tgz
cd swoole-4.7.1
/usr/local/php74/bin/phpize
./configure --with-php-config=/usr/local/php74/bin/php-config --enable-openssl --enable-http2
make && make install
echo "extension=swoole.so" >> /usr/local/php74/etc/php.ini
示例2:以Ubuntu 20.04 LTS为例,安装openssl和swoole扩展,PHP版本为7.4
// 安装openssl
apt update
apt-get install -y zlib1g-dev
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar -zxvf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make && make install
echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
ldconfig
// 安装swoole
apt-get install -y php php-dev
pecl install swoole
echo "extension=swoole.so" >> /etc/php/7.4/cli/php.ini