温馨提示×

怎样配置centos lnmp虚拟主机

小樊
35
2025-11-28 00:50:09
栏目: 云计算

在 CentOS 上配置 LNMP 虚拟主机

一 准备与安装

  • 更新系统并安装常用工具
    • 执行:sudo yum update -y && sudo yum install -y epel-release yum-utils
  • 安装并启动 Nginx
    • 执行:sudo yum install -y nginx
    • 启动与开机自启:sudo systemctl start nginx && sudo systemctl enable nginx
  • 安装 MariaDB(或 MySQL)
    • 执行:sudo yum install -y mariadb-server mariadb
    • 启动与开机自启:sudo systemctl start mariadb && sudo systemctl enable mariadb
    • 安全初始化:sudo mysql_secure_installation
  • 安装 PHP 与 PHP-FPM
    • 执行:sudo yum install -y php php-fpm php-mysqlnd
    • 启动与开机自启:sudo systemctl start php-fpm && sudo systemctl enable php-fpm
  • 防火墙放行 HTTP/HTTPS
    • 执行:sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload
  • 验证服务状态
    • 执行:sudo systemctl status nginx php-fpm mariadb,确保均为 active (running)

二 手动配置 Nginx 虚拟主机

  • 创建站点目录与示例文件
    • 执行:sudo mkdir -p /var/www/example.com/html
    • 权限:sudo chown -R nginx:nginx /var/www/example.com && sudo chmod -R 755 /var/www/example.com
    • 测试页:echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.com/html/index.php
  • 新建虚拟主机配置
    • 新建:sudo vi /etc/nginx/conf.d/example.com.conf
    • 写入以下内容(按需调整域名与路径):
      server {
          listen 80;
          server_name example.com www.example.com;
      
          root /var/www/example.com;
          index index.php index.html index.htm;
      
          location / {
              try_files $uri $uri/ =404;
          }
      
          location ~ \.php$ {
              include fastcgi_params;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              fastcgi_pass unix:/run/php-fpm/www.sock;  # 路径以实际 php-fpm 配置为准
          }
      
          location ~ /\.ht {
              deny all;
          }
      }
      
  • 检查并重载 Nginx
    • 检查:sudo nginx -t
    • 重载:sudo systemctl reload nginx
  • 域名解析
    • 在域名注册商将 example.comwww.example.comA 记录指向服务器 IP

三 一键安装包 LNMP 的虚拟主机管理

  • 适用场景:使用 lnmp.org 一键安装包部署的环境
  • 常用命令
    • 添加站点:./vhost.sh(按向导输入域名、目录、伪静态、日志、数据库、FTP、SSL 等)
    • 列出站点:./lnmp vhost list
    • 删除站点:./lnmp vhost del
    • 状态管理:/root/lnmp {start|stop|reload|restart|status}
  • 伪静态
    • 规则文件位置:/usr/local/nginx/conf/rewrite/(LNMP 1.5+),在站点配置中 include rewrite/xxx.conf;
  • SSL
    • 为已存在站点添加 SSL:./lnmp ssl add(支持 Let’s Encrypt 或自备证书)。

四 启用 HTTPS 与常见问题

  • 使用 Let’s Encrypt 为站点启用 HTTPS
    • 安装客户端:sudo yum install -y certbot python2-certbot-nginx
    • 申请并自动配置:sudo certbot --nginx -d example.com -d www.example.com
    • 自动续期(建议):echo "0 0,12 * * * root certbot renew --quiet" | sudo tee -a /etc/crontab
  • 常见问题排查
    • 403/404:检查 root 路径、index 指令、目录权限是否为 nginx:nginx755
    • PHP 空白页/502:确认 php-fpm 运行、监听套接字路径与 Nginx fastcgi_pass 一致(如 /run/php-fpm/www.sock),查看 /var/log/nginx/error.log/var/log/php-fpm/*.log
    • 端口与防火墙:确保 80/443 已放行,云服务器安全组策略同步开放
    • 证书不受信任/不显示小绿锁:证书过期或页面内存在 HTTP 资源(CSS/JS/图片),使用浏览器开发者工具(F12)排查并替换为 HTTPS 资源。

0