下面给你一份**在 Debian 下搭建 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)**的实用配置指南,适用于 Debian 11 / 12,新手也能照着做。
sudo apt update
sudo apt upgrade -y
建议先设置主机名、时区:
sudo timedatectl set-timezone Asia/Shanghai
sudo apt install nginx -y
启动并设置开机自启:
sudo systemctl enable --now nginx
测试:
curl http://localhost
Debian 默认用 MariaDB:
sudo apt install mariadb-server -y
初始化安全配置:
sudo mysql_secure_installation
创建数据库示例:
sudo mysql -u root -p
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
以 PHP 8.2 为例(Debian 12 默认):
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y
查看 PHP 版本:
php -v
PHP-FPM 服务名通常是:
sudo systemctl status php8.2-fpm
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.com/index.php
sudo nano /etc/nginx/sites-available/example.com
示例配置:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo apt install ufw
sudo ufw allow 80,443,22/tcp
sudo ufw enable
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
✅ 502 Bad Gateway
php-fpm 是否运行fastcgi_pass 的 sock 路径是否正确✅ File not found
root 路径错误www-data✅ PHP 不解析
location ~ \.php$ 配置存在nginx + php-fpm + mariadb
Nginx 负责静态
PHP-FPM 处理动态
MySQL 存数据
如果你需要:
告诉我你的使用场景,我可以直接给你对应方案。