Debian LNMP虚拟主机设置步骤
首先确保系统软件包为最新版本,避免兼容性问题:
sudo apt update && sudo apt upgrade -y
安装Nginx并启动服务,设置开机自启:
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
验证Nginx是否运行:浏览器访问服务器IP,应看到Nginx默认欢迎页面。
选择MySQL或MariaDB(推荐MariaDB,更轻量):
sudo apt install mariadb-server mariadb-client -y # MariaDB
# 或
sudo apt install mysql-server -y # MySQL
启动数据库服务并设置开机自启:
sudo systemctl start mariadb
sudo systemctl enable mariadb
运行安全脚本加固数据库(设置root密码、移除匿名用户、禁止远程root登录等):
sudo mysql_secure_installation
安装PHP-FPM(FastCGI进程管理器)及常用扩展(如MySQL、GD、MBString等):
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml -y
启动PHP-FPM并设置开机自启:
sudo systemctl start php7.4-fpm # 根据PHP版本调整(如php8.2-fpm)
sudo systemctl enable php7.4-fpm
编辑PHP-FPM池配置文件(默认路径/etc/php/7.4/fpm/pool.d/www.conf
),确保listen
指令与Nginx配置一致:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
找到listen
行,修改为Unix socket(性能更优):
listen = /run/php/php7.4-fpm.sock
保存退出后,重启PHP-FPM使配置生效:
sudo systemctl restart php7.4-fpm
在/etc/nginx/sites-available/
目录下新建配置文件(如yourdomain.com.conf
):
sudo nano /etc/nginx/sites-available/yourdomain.com.conf
添加以下内容(替换yourdomain.com
为你的域名,/var/www/yourdomain.com
为网站根目录):
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 必须与PHP-FPM的listen一致
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all; # 禁止访问.htaccess文件
}
}
保存退出。
创建符号链接,将配置文件链接到sites-enabled
目录(Nginx实际读取的目录):
sudo ln -s /etc/nginx/sites-available/yourdomain.com.conf /etc/nginx/sites-enabled/
测试配置文件语法是否正确:
sudo nginx -t
若输出syntax is ok
和test is successful
,则重载Nginx使配置生效:
sudo systemctl reload nginx
创建网站根目录,并修改所有者为Nginx运行的用户(www-data
):
sudo mkdir -p /var/www/yourdomain.com
sudo chown -R www-data:www-data /var/www/yourdomain.com
在网站根目录下创建index.php
,用于验证PHP是否正常运行:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/yourdomain.com/index.php
浏览器访问http://yourdomain.com
,应看到PHP信息页面(若未绑定域名,可通过修改本地/etc/hosts
文件映射IP到域名)。
使用Let’s Encrypt为网站添加HTTPS加密:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成证书申请(自动配置Nginx的SSL监听端口443)。
fastcgi_pass
路径(如/run/php/php8.2-fpm.sock
)。sudo ufw allow 'Nginx Full'