Debian系统搭建LNMP(Linux+Nginx+MySQL/MariaDB+PHP)环境步骤
首先确保系统软件包为最新版本,避免依赖冲突:
sudo apt update && sudo apt upgrade -y
通过APT包管理器快速安装Nginx,并启动服务:
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx # 设置开机自启
验证安装:浏览器访问服务器IP,应看到Nginx默认欢迎页面。
sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
安全加固:运行脚本设置root密码、删除匿名用户、禁止远程root登录等:
sudo mysql_secure_installation
按照提示完成配置(如设置root密码、移除测试数据库)。
安装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扩展)。
编辑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
在Web根目录(/var/www/html)创建info.php文件,内容如下:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问http://服务器IP/info.php,若看到PHP信息页面(包含版本、扩展列表等),则说明PHP配置成功。
允许HTTP(80)和HTTPS(443)流量:
sudo ufw allow 'Nginx Full'
sudo ufw enable # 启用防火墙(若未启用)
为站点配置免费HTTPS证书:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com # 替换为你的域名
按照提示完成验证,证书会自动配置到Nginx中。
fastcgi_pass路径是否正确(与PHP-FPM socket一致),重启Nginx和PHP-FPM服务;php -m查看已加载扩展,若缺失可通过sudo apt install php-扩展名安装;/var/www/html目录权限为www-data:www-data(Nginx默认用户)。按照以上步骤,即可完成Debian系统下的LNMP环境搭建,满足PHP网站的运行需求。