LNMP环境在Debian上如何部署
小樊
38
2025-12-08 20:42:00
在 Debian 上部署 LNMP 的实操步骤
一 准备与版本选择
- 更新系统并安装常用工具:
- sudo apt update && sudo apt upgrade -y
- sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
- PHP 版本选择建议:
- Debian 12 常用 PHP 8.2;Debian 11 常用 PHP 7.4。
- 查看可用版本:apt-cache policy php;安装示例:sudo apt install php8.2 php8.2-fpm(或 php7.4 php7.4-fpm)。
- 数据库选择:
- 快速上手优先 MariaDB(Debian 仓库默认);需要 MySQL 8.0/8.4 可后续添加官方仓库或使用离线 DEB 包安装。
二 安装与启动 Nginx
- 安装 Nginx(两种常用方式,二选一):
- 仓库安装:sudo apt install -y nginx
- 官方仓库安装(可选,获取更新版本或主线版):
- curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nginx-keys.gpg >/dev/null
- echo “deb [signed-by=/usr/share/keyrings/nginx-keys.gpg] https://nginx.org/packages/mainline/debian/ $(lsb_release -cs) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list >/dev/null
- sudo apt update && 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 mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root 等)
- 启动与自启:sudo systemctl start mariadb && sudo systemctl enable mariadb
- MySQL(可选,示例为 8.0/8.4):
- 方式 A(在线):添加 MySQL APT 仓库 后执行 sudo apt install -y mysql-server
- 方式 B(离线 DEB,Debian 12 示例):
- 预先安装依赖:sudo apt install -y libaio1 libmecab2 libnuma1 psmisc
- 下载 MySQL DEB Bundle,解压并按顺序安装(或使用 dpkg-preconfigure 交互设置 root 密码与认证插件)
- 启动与自启:sudo systemctl enable --now mysql
- 验证:mysql -V 或 sudo systemctl status mysql/mariadb。
四 安装与配置 PHP-FPM
- 安装 PHP 与常用扩展(以 PHP 8.2 为例,按需替换为 7.4):
- sudo apt install -y php8.2 php8.2-fpm php8.2-mysql php8.2-cli php8.2-json php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath
- 启动与自启:sudo systemctl start php8.2-fpm && sudo systemctl enable php8.2-fpm
- 核对 FPM 监听(两种常见路径,按实际为准):
- /run/php/php8.2-fpm.sock 或 /var/run/php/php8.2-fpm.sock
- 如修改了 /etc/php/8.2/fpm/pool.d/www.conf 的 listen.owner/group,请同步重启 FPM。
五 配置 Nginx 处理 PHP 并测试
- 编辑站点配置(示例:/etc/nginx/sites-available/default):
- 建议保留默认 server 块,仅添加/修改 PHP 相关 location:
- 示例片段:
- 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/php8.2-fpm.sock; # 与 FPM 监听保持一致
- 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://your_server_ip/info.php(看到 PHP 信息页即成功;生产环境请删除该文件)
- 可选启用 HTTPS(Certbot + Nginx):
- sudo apt install -y certbot python3-certbot-nginx
- sudo certbot --nginx -d yourdomain.com
- 常用排错命令:
- 查看服务状态:sudo systemctl status nginx php8.2-fpm mysql/mariadb
- 查看 Nginx 错误日志:sudo tail -f /var/log/nginx/error.log
- 查看 FPM 日志:sudo tail -f /var/log/php8.2-fpm.log。