温馨提示×

debian lnmp如何兼容

小樊
44
2026-07-30 08:24:25
栏目: 智能运维

在 Debian 上部署 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 并实现“兼容”,通常关注 软件版本兼容、PHP 与 Nginx 的配合、PHP 与 MySQL 的驱动、以及不同 PHP 版本共存。下面按常见场景给你一个实用兼容方案


一、Debian 版本与软件兼容性建议

Debian 版本 推荐 LNMP 组合
Debian 10 (Buster) Nginx 1.14 / MariaDB 10.3 / PHP 7.3
Debian 11 (Bullseye) Nginx 1.18 / MariaDB 10.5 / PHP 7.4
Debian 12 (Bookworm) Nginx 1.22 / MariaDB 10.11 / PHP 8.2

建议:优先使用 Debian 官方源,避免混用第三方源导致不兼容


二、基础 LNMP 安装(官方源)

1️⃣ 安装 Nginx

sudo apt update
sudo apt install nginx -y

验证:

nginx -v

2️⃣ 安装 MariaDB(MySQL 兼容)

sudo apt install mariadb-server -y
sudo mysql_secure_installation

✅ MariaDB 完全兼容 MySQL,PHP 无需额外改动


3️⃣ 安装 PHP(FPM 模式,推荐)

sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

查看 PHP 版本:

php -v

三、Nginx 与 PHP 的兼容配置(关键)

1️⃣ 确认 PHP-FPM 监听方式

ls /run/php/

常见:

  • php-fpm.sock(推荐)
  • php7.4-fpm.sock
  • php8.2-fpm.sock

2️⃣ Nginx 站点配置(示例)

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }
}

⚠️ PHP 版本必须和 sock 文件名一致


四、PHP 与 MySQL 的兼容性

✅ 正确驱动

  • MySQLi
  • PDO_MySQL

检查:

php -m | grep mysql

❌ 不要使用旧 mysql_* 函数(PHP 7+ 已移除)


五、多 PHP 版本共存(LNMP 兼容重点)

1️⃣ 安装多个 PHP 版本

sudo apt install php7.4-fpm php8.2-fpm -y

2️⃣ 不同站点使用不同 PHP

location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}

或:

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

✅ 同一个 Nginx + MySQL,兼容多个 PHP 项目


六、常见“不兼容”问题排查

❌ 502 Bad Gateway

原因:

  • PHP-FPM 未启动
  • sock 路径错误

解决:

sudo systemctl status php8.2-fpm
sudo nginx -t

❌ PHP 无法连接 MySQL

sudo apt install php-mysql
sudo systemctl restart php-fpm

❌ Debian 12 安装旧 PHP

✅ 使用第三方源(如 ondrej):

sudo apt install curl
curl -sSL https://packages.sury.org/php/README | bash
sudo apt update
sudo apt install php7.4-fpm

⚠️ 注意系统稳定性


七、推荐稳定兼容方案(总结)

最稳妥

Debian 11 + Nginx + MariaDB + PHP 7.4

现代方案

Debian 12 + Nginx + MariaDB + PHP 8.2

老项目兼容

Debian + 多 PHP-FPM + 不同站点指定 PHP

如果你能告诉我:

  • Debian 具体版本
  • PHP 项目(Laravel / ThinkPHP / WordPress / 自写)
  • 是否要 老 PHP(5.6 / 7.0)

我可以给你一套 完全匹配你环境的 LNMP 安装方案

0