温馨提示×

LNMP在Debian上配置步骤是什么

小樊
39
2025-11-29 01:32:40
栏目: 智能运维

在 Debian 上搭建 LNMP 的推荐步骤

一 准备与安装基础组件

  • 更新系统并安装常用工具
    • sudo apt update && sudo apt upgrade -y
    • sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
  • 安装 Nginx
    • 稳定源安装:sudo apt install -y nginx && sudo systemctl start nginx && sudo systemctl enable nginx
    • 如需最新主线版(可选):
      • curl -sL 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/debian $(lsb_release -sc) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list
      • sudo apt update && sudo apt install -y nginx && sudo systemctl enable --now nginx
  • 验证:浏览器访问服务器 IP,出现 Nginx 欢迎页即正常。

二 安装与配置数据库

  • 选择其一安装数据库
    • MariaDB:sudo apt install -y mariadb-server mariadb-client && sudo systemctl enable --now mariadb
    • MySQL:sudo apt install -y mysql-server && sudo systemctl enable --now mysql
  • 安全初始化
    • sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root、删除测试库等)
  • 可选:创建应用专用数据库与用户
    • mysql -u root -p
    • CREATE DATABASE appdb; CREATE USER ‘appuser’@‘localhost’ IDENTIFIED BY ‘StrongPass!’; GRANT ALL ON appdb.* TO ‘appuser’@‘localhost’; FLUSH PRIVILEGES; EXIT;

三 安装与配置 PHP 与 PHP-FPM

  • 安装 PHP 与常用扩展(版本号以实际仓库为准,示例为 PHP 7.4
    • sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
    • 启动并设置开机自启:sudo systemctl enable --now php7.4-fpm
  • 调整 PHP-FPM 以匹配 Nginx(/etc/php/7.4/fpm/pool.d/www.conf)
    • 建议保持 Unix 套接字通信:listen = /run/php/php7.4-fpm.sock
    • 确保进程属主与 Nginx 一致:user = www-data,group = www-data;listen.owner = www-data,listen.group = www-data
    • 重启:sudo systemctl restart php7.4-fpm
  • 说明:Debian 12 可能提供 PHP 8.x,包名与路径请按实际替换(如 php8.2-fpm)。

四 配置 Nginx 处理 PHP

  • 编辑站点配置(/etc/nginx/sites-available/default 或 /etc/nginx/sites-available/yourdomain.conf)
    • 示例核心片段:
      • 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;
        • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        • include fastcgi_params;
        • }
      • location ~ /.ht { deny all; }
  • 检查并重载
    • sudo nginx -t && sudo systemctl reload nginx
  • 说明:root 目录常见为 /var/www/html(Debian 打包 Nginx 默认)或 /usr/share/nginx/html(部分教程使用);保持一致即可。

五 验证与后续安全优化

  • 验证 PHP
    • echo “” | sudo tee /var/www/html/info.php
    • 浏览器访问:http://服务器IP/info.php(确认显示 PHP 信息页后建议删除该文件)
  • 防火墙(如使用 UFW)
    • sudo ufw allow ‘Nginx Full’ && sudo ufw enable
  • 启用 HTTPS(Let’s Encrypt)
    • sudo apt install -y certbot python3-certbot-nginx
    • sudo certbot --nginx -d yourdomain.com(按提示完成证书申请与自动续期配置)
  • 数据库连通性测试(可选)
    • 示例(/var/www/html/dbtest.php):
      • connect_error ? "连接失败: ".$conn->connect_error : "连接成功"; - $conn->close(); - ?>
    • 访问 http://服务器IP/dbtest.php 验证输出“连接成功”。

0