工作日记
日期:2024年6月11日
任务:在PHP 7.4中安装php-fpm的pcntl扩展
目标
在PHP 7.4环境中安装并配置pcntl
扩展,以便在PHP-FPM中使用。
步骤
1. 准备工作
首先,在容器中安装必要的工具:
apt-get update
apt-get install -y build-essential autoconf bison re2c libxml2-dev wget
2. 获取PHP源代码
从PHP官方网站下载相应版本的源代码,并进行解压:
cd /usr/local/src
wget https://www.php.net/distributions/php-7.4.30.tar.gz # 用最新的7.4版本替换
tar -xzf php-7.4.30.tar.gz
cd php-7.4.30
3. 编译pcntl扩展
进入PHP源代码目录,准备编译pcntl
扩展:
cd ext/pcntl
phpize
./configure
make
make install
编译成功后,.so
文件将被安装到指定目录,通常类似于:
/usr/local/lib/php/extensions/no-debug-non-zts-20190902/
4. 拷贝.so
文件
将生成的pcntl.so
文件拷贝到容器内部的适当目录:
mkdir -p /usr/local/lib/php/extensions
cp /usr/local/lib/php/extensions/no-debug-non-zts-20190902/pcntl.so /usr/local/lib/php/extensions/
5. 配置PHP加载扩展
编辑php.ini
文件,使PHP加载新的扩展:
echo "extension=/usr/local/lib/php/extensions/pcntl.so" >> /etc/php/7.4/fpm/php.ini
echo "extension=/usr/local/lib/php/extensions/pcntl.so" >> /etc/php/7.4/cli/php.ini
6. 重启PHP-FPM服务
重启PHP-FPM服务以使新扩展生效:
service php7.4-fpm restart
7. 验证扩展是否加载
通过以下命令验证pcntl
扩展是否成功加载:
php -m | grep pcntl
或者创建一个包含phpinfo();
的PHP文件并通过浏览器访问,查看加载的扩展信息。
完整脚本示例
为了方便,可以将上述所有步骤写成一个脚本并运行:
#!/bin/bash
# 更新包列表并安装必要的工具
apt-get update
apt-get install -y build-essential autoconf bison re2c libxml2-dev wget
# 下载并解压PHP源码
cd /usr/local/src
wget https://www.php.net/distributions/php-7.4.30.tar.gz
tar -xzf php-7.4.30.tar.gz
cd php-7.4.30
# 编译pcntl扩展
cd ext/pcntl
phpize
./configure
make
make install
# 创建扩展目录并拷贝.so文件
mkdir -p /usr/local/lib/php/extensions
cp /usr/local/lib/php/extensions/no-debug-non-zts-20190902/pcntl.so /usr/local/lib/php/extensions/
# 配置PHP加载扩展
echo "extension=/usr/local/lib/php/extensions/pcntl.so" >> /etc/php/7.4/fpm/php.ini
echo "extension=/usr/local/lib/php/extensions/pcntl.so" >> /etc/php/7.4/cli/php.ini
# 重启PHP-FPM服务
service php7.4-fpm restart
# 验证扩展是否加载
php -m | grep pcntl
保存上述脚本为install_pcntl.sh
并运行:
chmod +x install_pcntl.sh
./install_pcntl.sh
总结
通过以上步骤,成功在PHP 7.4环境中安装并配置了pcntl
扩展。这个过程包括安装必要的工具,下载并解压PHP源代码,编译pcntl
扩展,配置PHP加载扩展,以及重启服务和验证扩展是否加载。这些步骤确保了PHP能够正常使用新安装的扩展。