Linux下配置PHP-FPM需分三步:一、用apt/dnf安装PHP及FPM并验证服务状态;二、手动编译时配置--enable-fpm等参数并启动;三、通过pecl安装Redis、启用OPcache等扩展,最后用phpinfo()和Nginx验证。

如果您需要在Linux系统中搭建PHP运行环境,特别是配置PHP-FPM以支持Web服务(如Nginx),则需完成PHP核心安装、PHP-FPM启用及常用扩展加载。以下是具体操作步骤:
一、通过包管理器安装PHP及PHP-FPM
使用系统原生包管理器可快速部署稳定版本的PHP与PHP-FPM,适用于CentOS/RHEL或Ubuntu/Debian等主流发行版,避免手动编译带来的依赖复杂性。
1、对于Ubuntu 22.04或Debian 12:
执行 sudo apt update && sudo apt install php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip。
2、对于CentOS 8或Rocky Linux 8:
启用EPEL与PowerTools仓库后,执行 sudo dnf install php-fpm php-cli php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip。
立即学习“PHP免费学习笔记(深入)”;
3、安装完成后验证PHP-FPM状态:
运行 sudo systemctl is-active php-fpm,返回 active 表示服务已就绪。
二、手动编译安装PHP及启用FPM
当需要指定PHP版本(如8.2.12)、启用特定SAPI或定制编译参数时,手动编译提供完全控制权,适用于生产环境对版本一致性有严格要求的场景。
1、安装编译依赖:
Ubuntu下执行 sudo apt install build-essential libxml2-dev libsqlite3-dev libonig-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype-dev libzip-dev zlib1g-dev。
2、下载PHP源码并解压:
访问 https://www.php.net/downloads.php 获取.tar.xz包,例如 wget https://www.php.net/distributions/php-8.2.12.tar.xz && tar -xf php-8.2.12.tar.xz。
3、进入源码目录并配置编译选项:
执行 cd php-8.2.12 && ./configure --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-mysqlnd --with-curl --with-gd --with-jpeg --with-png --with-freetype --enable-mbstring --enable-xml --enable-zip --with-zlib。
4、编译并安装:
依次运行 make -j$(nproc) 和 sudo make install。
5、复制FPM配置文件并启动服务:
执行 sudo cp sapi/fpm/www.conf /usr/local/etc/php-fpm.d/www.conf && sudo cp sapi/fpm/php-fpm.conf /usr/local/etc/php-fpm.conf && sudo /usr/local/sbin/php-fpm。
三、加载PHP扩展(以Redis和OPcache为例)
PHP扩展需在php.ini中显式启用,并确保对应.so文件存在于扩展目录;部分扩展需先安装系统级依赖库再编译安装。
1、安装Redis扩展(使用pecl):
确保已安装 php-dev 或 php-devel,然后执行 sudo pecl install redis。
2、启用Redis扩展:
编辑主配置文件(如 /etc/php/8.2/fpm/php.ini 或 /usr/local/lib/php.ini),添加 extension=redis.so。
3、启用OPcache(提升脚本执行性能):
在相同php.ini中取消注释并确认以下行存在:zend_extension=opcache.so,并设置 opcache.enable=1 与 opcache.memory_consumption=128。
4、重启PHP-FPM使扩展生效:
Ubuntu/Debian执行 sudo systemctl restart php8.2-fpm;手动编译安装则先 killall php-fpm 再重新运行 /usr/local/sbin/php-fpm。
四、验证PHP-FPM与扩展是否正常工作
通过命令行与简单Web测试双重确认环境完整性,排除配置遗漏或权限问题。
1、检查PHP版本与加载模块:
运行 php -v 查看版本号,再执行 php -m | grep -E 'redis|opcache|fpm' 确认扩展已列出。
2、创建PHP信息页:
在Web服务器根目录(如 /var/www/html)新建 info.php,内容为 。
3、配置Nginx将PHP请求转发至PHP-FPM:
在server块中添加 location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; }。
4、重启Nginx并访问 http://your-server-ip/info.php,页面中应显示PHP版本、FPM相关参数及已启用扩展列表。










