一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

ubuntu如何编译php-fpm

时间:2026-08-13 09:11:50 编辑:袖梨 来源:一聚教程网

在 Ubuntu 上编译 php-fpm,通常是为了使用特定版本或开启某些官方仓库没有的扩展。下面给你一套从源码编译 PHP 并启用 php-fpm 的完整流程(以 PHP 8.1 为例,其他版本同理)。

ubuntu如何编译php-fpm

一、准备编译环境

1. 更新系统

sudo apt update

sudo apt upgrade -y

2. 安装编译依赖

sudo apt install -y 

build-essential

pkg-config

libxml2-dev

libsqlite3-dev

libcurl4-openssl-dev

libpng-dev

libjpeg-dev

libonig-dev

libzip-dev

libssl-dev

libreadline-dev

libpq-dev

libfreetype6-dev

autoconf

automake

libtool

如果你需要更多扩展(如 LDAP、Redis、GD、IMAP 等),需额外安装对应 dev 包。

二、下载 PHP 源码

1. 下载源码(示例:PHP 8.1.x)

cd /usr/local/src

sudo wget https://www.php.net/distributions/php-8.1.27.tar.gz

sudo tar -zxvf php-8.1.27.tar.gz

cd php-8.1.27

你也可以换成其他版本:

https://www.php.net/distributions/php-8.2.xx.tar.gz

https://www.php.net/distributions/php-8.3.xx.tar.gz

三、配置编译参数(关键)

1. 生成 configure

./configure 

--prefix=/usr/local/php

--enable-fpm

--with-fpm-user=www-data

--with-fpm-group=www-data

--enable-mbstring

--enable-mysqlnd

--with-mysqli

--with-pdo-mysql

--with-openssl

--with-curl

--with-zip

--with-zlib

--enable-gd

--with-freetype

--with-jpeg

--enable-fpm 是编译 php-fpm 的关键

2. 常见可选参数

功能参数Redis--enable-redis(需单独扩展)PostgreSQL--with-pdo-pgsql调试--enable-debug静态编译--disable-shared

四、编译并安装

make -j$(nproc)

sudo make install

安装完成后:

/usr/local/php/bin/php -v

五、配置 php-fpm

1. 复制默认配置

cd /usr/local/php/etc

sudo cp php-fpm.conf.default php-fpm.conf

sudo cp php-fpm.d/www.conf.default php-fpm.d/www.conf

2. 编辑 www.conf(可选)

sudo nano php-fpm.d/www.conf

常见修改:

user = www-data

group = www-data

listen = /run/php/php-fpm.sock

listen.owner = www-data

listen.group = www-data

六、创建 systemd 服务

1. 创建服务文件

sudo nano /etc/systemd/system/php-fpm.service

内容:

[Unit]

Description=PHP FastCGI Process Manager

After=network.target

[Service]

Type=simple

ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize

Restart=always

[Install]

WantedBy=multi-user.target

2. 启动 php-fpm

sudo systemctl daemon-reload

sudo systemctl start php-fpm

sudo systemctl enable php-fpm

查看状态:

systemctl status php-fpm

七、验证 php-fpm

ps aux | grep php-fpm

或在 Nginx 中测试:

location ~ .php$ {

fastcgi_pass unix:/run/php/php-fpm.sock;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

八、常见问题

1. 缺少扩展

sudo apt install libxxx-dev

然后重新编译。

2. 端口 / sock 冲突

sudo netstat -plnt | grep php

九、总结

核心步骤:

  1. 安装依赖
  2. ./configure --enable-fpm
  3. make && make install
  4. 配置 php-fpm
  5. systemd 管理

如果你愿意,可以告诉我:

  1. 你用的是 Ubuntu 20.04 / 22.04 / 24.04
  2. 要编译 PHP 7.x / 8.x
  3. 是否需要 Nginx / Apache
  4. 是否要 OpenSSL 3 / 特定扩展

我可以给你一份完全针对你环境的编译方案

热门栏目