温馨提示×

Debian LNMP环境如何搭建

小樊
35
2025-11-11 05:24:14
栏目: 智能运维

Debian系统搭建LNMP(Linux+Nginx+MySQL/MariaDB+PHP)环境步骤

1. 更新系统包

首先确保系统软件包为最新版本,避免依赖冲突:

sudo apt update && sudo apt upgrade -y

2. 安装Nginx Web服务器

通过APT包管理器快速安装Nginx,并启动服务:

sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx  # 设置开机自启

验证安装:浏览器访问服务器IP,应看到Nginx默认欢迎页面。

3. 安装MySQL/MariaDB数据库

选项1:安装MariaDB(推荐,Debian默认仓库提供)

sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb

选项2:安装MySQL(需添加官方仓库,步骤略,参考官方文档)

安全加固:运行脚本设置root密码、删除匿名用户、禁止远程root登录等:

sudo mysql_secure_installation

按照提示完成配置(如设置root密码、移除测试数据库)。

4. 安装PHP及常用扩展

安装PHP-FPM(Nginx需通过FastCGI与PHP通信)及常用扩展(如MySQL、GD、MBString等):

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

注意:根据需求调整扩展(如php-mysqli用于MySQLi扩展,php-pdo用于PDO扩展)。

5. 配置Nginx支持PHP

编辑Nginx默认站点配置文件(/etc/nginx/sites-available/default),添加PHP处理规则:

sudo nano /etc/nginx/sites-available/default

修改server块中的location ~ \.php$部分,确保包含以下内容:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;  # 包含FastCGI配置
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;  # 根据PHP版本调整(如php8.1-fpm.sock)
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  # 传递脚本路径
    include fastcgi_params;  # 包含通用FastCGI参数
}

关键说明

  • fastcgi_pass需指向PHP-FPM的Unix socket路径(可通过sudo ls /run/php/确认);
  • 确保index指令包含index.php(如index index.php index.html)。

测试Nginx配置语法:

sudo nginx -t

若无错误,重新加载Nginx:

sudo systemctl reload nginx

6. 测试PHP运行环境

在Web根目录(/var/www/html)创建info.php文件,内容如下:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

浏览器访问http://服务器IP/info.php,若看到PHP信息页面(包含版本、扩展列表等),则说明PHP配置成功。

7. 可选优化:配置防火墙与SSL

配置防火墙(UFW)

允许HTTP(80)和HTTPS(443)流量:

sudo ufw allow 'Nginx Full'
sudo ufw enable  # 启用防火墙(若未启用)

安装SSL证书(Let’s Encrypt)

为站点配置免费HTTPS证书:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com  # 替换为你的域名

按照提示完成验证,证书会自动配置到Nginx中。

常见问题排查

  • Nginx无法解析PHP:检查fastcgi_pass路径是否正确(与PHP-FPM socket一致),重启Nginx和PHP-FPM服务;
  • PHP扩展未加载:通过php -m查看已加载扩展,若缺失可通过sudo apt install php-扩展名安装;
  • 权限问题:确保/var/www/html目录权限为www-data:www-data(Nginx默认用户)。

按照以上步骤,即可完成Debian系统下的LNMP环境搭建,满足PHP网站的运行需求。

0