温馨提示×

Debian LNMP虚拟主机如何设置

小樊
46
2025-10-02 00:58:15
栏目: 云计算

Debian LNMP虚拟主机设置步骤

1. 更新系统软件包

首先确保系统软件包为最新版本,避免兼容性问题:

sudo apt update && sudo apt upgrade -y 

2. 安装Nginx(Web服务器)

安装Nginx并启动服务,设置开机自启:

sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx 

验证Nginx是否运行:浏览器访问服务器IP,应看到Nginx默认欢迎页面。

3. 安装MySQL/MariaDB(数据库)

选择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 

4. 安装PHP及扩展(后端支持)

安装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 

5. 配置PHP-FPM与Nginx通信

编辑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 

6. 配置Nginx虚拟主机

6.1 创建虚拟主机配置文件

/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文件 } } 

保存退出。

6.2 启用虚拟主机

创建符号链接,将配置文件链接到sites-enabled目录(Nginx实际读取的目录):

sudo ln -s /etc/nginx/sites-available/yourdomain.com.conf /etc/nginx/sites-enabled/ 

7. 测试Nginx配置并重载

测试配置文件语法是否正确:

sudo nginx -t 

若输出syntax is oktest is successful,则重载Nginx使配置生效:

sudo systemctl reload nginx 

8. 创建网站目录并设置权限

创建网站根目录,并修改所有者为Nginx运行的用户(www-data):

sudo mkdir -p /var/www/yourdomain.com sudo chown -R www-data:www-data /var/www/yourdomain.com 

9. 创建测试页面

在网站根目录下创建index.php,用于验证PHP是否正常运行:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/yourdomain.com/index.php 

浏览器访问http://yourdomain.com,应看到PHP信息页面(若未绑定域名,可通过修改本地/etc/hosts文件映射IP到域名)。

10. 可选:配置SSL证书(免费)

使用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)。

注意事项

  • PHP版本适配:根据安装的PHP版本调整fastcgi_pass路径(如/run/php/php8.2-fpm.sock)。
  • 防火墙设置:若开启UFW防火墙,需允许HTTP(80)和HTTPS(443)流量:
    sudo ufw allow 'Nginx Full' 
  • 域名解析:正式环境需将域名DNS解析到服务器IP(A记录或CNAME记录)。

0