温馨提示×

怎么在Debian编译安装PHP

小樊
42
2026-07-31 21:29:34
栏目: 编程语言

在 Debian 上从源码编译安装 PHP,下面给你一套通用、可实操的流程(以 PHP 8.2 / 8.3 为例,适用于 Debian 11/12)。
如果你只是想用 PHP,而不是定制编译,强烈建议用 apt 安装,会省很多事。


一、准备编译环境

先安装必要的依赖:

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

如果你需要更多扩展(如 gd、ldap、snmp、imap),再补装对应 -dev 包。


二、下载 PHP 源码

去 PHP 官方下载你需要的版本:

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

(版本号可换)


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

先查看可用参数:

./configure --help

一个常见配置示例(适合 Web + CLI)

./configure \
  --prefix=/usr/local/php \
  --with-config-file-path=/usr/local/php/etc \
  --enable-mbstring \
  --enable-sockets \
  --enable-fpm \
  --with-fpm-user=www-data \
  --with-fpm-group=www-data \
  --with-openssl \
  --with-curl \
  --with-zlib \
  --with-zip \
  --with-gd \
  --with-jpeg \
  --with-freetype \
  --with-pdo-mysql \
  --with-pdo-pgsql \
  --with-readline \
  --without-pear

✅ 说明:

  • --prefix:PHP 安装目录
  • --enable-fpm:启用 PHP-FPM(Nginx 必备)
  • --with-pdo-mysql:MySQL 支持
  • 不需要的扩展可以不加

四、编译并安装

make -j$(nproc)
sudo make install

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


五、配置 PHP

1️⃣ 复制配置文件

sudo mkdir -p /usr/local/php/etc
sudo cp php.ini-development /usr/local/php/etc/php.ini

生产环境可用:

php.ini-production

2️⃣ 配置 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

六、加入系统环境

echo 'export PATH=/usr/local/php/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

验证:

php -v

七、设置 systemd 管理 PHP-FPM(推荐)

创建服务文件:

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
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动并设置开机自启:

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

八、验证

php -v
php-fpm -v
ps aux | grep php-fpm

九、常见问题

❌ 缺少 xxx.h

sudo apt install libxxx-dev

❌ make 失败

make clean

然后重新 ./configure


十、建议

生产环境

  • 用 Debian 官方仓库:apt install php php-fpm
  • 或第三方(如 ondrej PPA,Ubuntu 常用)

编译适合场景

  • 指定 PHP 版本
  • 定制扩展
  • 老旧系统

如果你愿意,我可以:

  • ✅ 给你 Nginx + PHP-FPM 完整配置
  • ✅ 帮你 只编译你需要的扩展
  • ✅ 给你 Debian 10/11/12 专用方案

直接告诉我你的 Debian 版本 + 使用场景 即可。

0