温馨提示×

怎么给Debian编译PHP

小樊
36
2026-07-05 20:28:09
栏目: 编程语言

在 Debian 上编译 PHP 有两种常见场景:从源码编译最新版 PHP,或重新编译 Debian 自带的 PHP 源码包。下面我按“最常用、最稳妥”的方式给你一个完整流程,并附上常见坑位说明。


一、从源码编译 PHP(推荐,适合自定义版本)

1️⃣ 安装编译依赖

sudo apt update
sudo apt install -y \
  build-essential \
  pkg-config \
  autoconf \
  automake \
  libxml2-dev \
  libsqlite3-dev \
  libssl-dev \
  libcurl4-openssl-dev \
  libpng-dev \
  libjpeg-dev \
  libonig-dev \
  libzip-dev \
  libreadline-dev \
  libpq-dev \
  libfreetype6-dev

如果你需要更多扩展(如 gdldapsnmp),按需再装对应 -dev 包。


2️⃣ 下载 PHP 源码

PHP 8.2 为例:

cd /usr/local/src
sudo wget https://www.php.net/distributions/php-8.2.22.tar.gz
sudo tar -xvf php-8.2.22.tar.gz
cd php-8.2.22

你也可以换成:

  • 8.1 / 8.3
  • https://www.php.net/downloads

3️⃣ 配置编译参数(关键)

./configure \
  --prefix=/usr/local/php \
  --with-config-file-path=/usr/local/php/etc \
  --enable-fpm \
  --enable-mbstring \
  --enable-opcache \
  --with-openssl \
  --with-curl \
  --with-zip \
  --with-zlib \
  --with-readline \
  --with-pdo-mysql \
  --with-mysqli

✅ 常用说明:

  • --prefix:PHP 安装路径
  • enable-fpm:PHP-FPM(Web 必选)
  • --with-pdo-mysql / --with-mysqli:MySQL 支持

查看所有参数:

./configure --help

4️⃣ 编译并安装

make -j$(nproc)
sudo make install

⚠️ 编译时间取决于 CPU,一般 3–10 分钟。


5️⃣ 配置 PHP

sudo cp php.ini-production /usr/local/php/etc/php.ini

PHP-FPM 配置:

sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

6️⃣ 设置 systemd 服务(Debian 8+)

创建服务文件:

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
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

启用并启动:

sudo systemctl daemon-reload
sudo systemctl enable php-fpm
sudo systemctl start php-fpm

7️⃣ 验证

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

二、编译 Debian 官方 PHP 源码包(适合打补丁 / 定制 deb)

适合你 不想脱离 Debian 生态 的情况。

1️⃣ 安装工具

sudo apt install -y build-essential devscripts debhelper

2️⃣ 获取源码

apt source php8.2
cd php8.2-*

3️⃣ 安装构建依赖

sudo apt build-dep php8.2

4️⃣ 编译

dpkg-buildpackage -b -uc -us

生成 .deb 文件,可用 apt install ./xxx.deb 安装。


三、常见问题 & 解决方法

❌ configure 报错:某个库 not found

  • 检查是否安装了 -dev
  • 使用:
apt search xxx | grep dev

❌ make 时内存不足

make -j2

或先关闭其他服务。


✅ 多版本 PHP 共存

建议:

  • 系统 PHP → apt 安装
  • 自定义 PHP → /usr/local/php

四、你适合哪种方式?

场景 建议
学习 / 新项目 源码编译
生产环境 apt + 必要时源码
修改 PHP 内核 / 打补丁 Debian 源码包
需要多版本 源码 + FPM

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

  • Debian 版本(10 / 11 / 12)
  • PHP 版本
  • 是否用于 Nginx / Apache
  • 是否需要 MySQL / Redis / Swoole

我可以直接给你 一条命令级定制方案

0