在 Debian 上搭建 LNMP 环境的实操步骤
一 准备与版本选择
- 更新系统并安装常用工具:
- sudo apt update && sudo apt upgrade -y
- sudo apt install -y curl wget vim
- 选择组件版本(示例以 Debian 11/12 为主,PHP 以 7.4 为例;如使用 PHP 8.2,将下文所有“7.4”替换为“8.2”即可):
- Nginx:apt 源版本通常足够稳定
- 数据库:二选一,MariaDB 或 MySQL 8.0
- PHP:建议 PHP-FPM + 常用扩展(如:php-mysql、php-gd、php-mbstring、php-curl、php-xml、php-zip、php-bcmath)
二 安装与配置 Nginx
- 安装与启动:
- sudo apt install -y nginx
- sudo systemctl start nginx && sudo systemctl enable nginx
- 防火墙(如使用 UFW):
- sudo ufw allow ‘Nginx Full’
- 验证:浏览器访问服务器 IP/域名 出现 Nginx 欢迎页即正常
三 安装与配置数据库
- MariaDB(推荐,开箱即用):
- sudo apt install -y mariadb-server mariadb-client
- sudo systemctl start mariadb && sudo systemctl enable mariadb
- sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root、删除测试库)
- 或安装 MySQL 8.0:
- sudo apt install -y mysql-server
- sudo systemctl start mysql && sudo systemctl enable mysql
- sudo mysql_secure_installation
- 可选:如需远程访问数据库,再按需开放 3306/tcp(不建议对公网开放 root)
四 安装与配置 PHP-FPM
- 安装 PHP 与扩展(按需增减):
- sudo apt install -y php-fpm php-mysql php-gd php-mbstring php-curl php-xml php-zip php-bcmath
- 确认 PHP-FPM 服务运行(以 7.4 为例):
- sudo systemctl start php7.4-fpm && sudo systemctl enable php7.4-fpm
- 核对监听地址(两种常见写法,二选一,保持与 Nginx 一致):
- Unix Socket:/run/php/php7.4-fpm.sock(Debian 常见)
- TCP 端口:127.0.0.1:9000
- 按需调整权限(使用 Unix Socket 时建议与 Web 运行用户一致):
- 编辑:/etc/php/7.4/fpm/pool.d/www.conf
- 示例:listen.owner = www-data;listen.group = www-data;listen.mode = 0660
- 调整后重启:sudo systemctl restart php7.4-fpm
五 配置 Nginx 处理 PHP 并测试
- 编辑站点配置(示例:/etc/nginx/sites-available/default):
- 基本站点与 PHP 处理:
- 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/php7.4-fpm.sock; # 若用 TCP,改为 127.0.0.1:9000
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- location ~ /.ht { deny all; }
- 检查并重载 Nginx:
- sudo nginx -t && sudo systemctl reload nginx
- 创建测试页并验证:
- echo “” | sudo tee /var/www/html/info.php
- 浏览器访问:http://服务器IP/info.php(看到 PHP 信息页即成功)
- 可选启用 HTTPS(Certbot + Nginx 插件):
- sudo apt install -y certbot python3-certbot-nginx
- sudo certbot --nginx -d your_domain.com [-d www.your_domain.com]
- 常见问题快速排查:
- 502 Bad Gateway:多为 PHP-FPM 未启动或 fastcgi_pass 地址不匹配
- 权限问题:确认 /var/www/html 对 www-data 可读,PHP-FPM 的 socket 权限正确
- 配置语法:修改后先执行 sudo nginx -t
- 查看错误日志:
- Nginx:sudo tail -f /var/log/nginx/error.log
- PHP-FPM:sudo tail -f /var/log/php7.4-fpm.log