温馨提示×

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。

0