服务器测评网
我们一直在努力

lnmp如何绑定二级域名到指定子目录?

在网站管理和运维过程中,为不同的业务模块或子项目配置独立的二级域名是一种常见的需求,通过LNMP(Linux+Nginx+MySQL+PHP)环境绑定二级域名,可以实现不同子域名指向不同的网站目录,从而提升网站管理的灵活性和用户体验,本文将详细介绍在LNMP环境下绑定二级域名的具体步骤、注意事项及相关配置技巧。

lnmp如何绑定二级域名到指定子目录?

准备工作:域名解析与LNMP环境检查

在开始配置二级域名之前,需要确保两项基础工作已完成,首先是域名解析配置,登录域名管理控制台,添加一条A记录或CNAME记录,将二级域名(如blog.example.com)指向服务器的公网IP地址,解析生效时间通常为几分钟到几小时,可通过ping命令或在线DNS查询工具验证。

LNMP环境确认,确保服务器已正确安装Nginx、MySQL、PHP,且各服务运行正常,可通过以下命令检查:

  • nginx -t:验证Nginx配置语法是否正确;
  • systemctl status nginx mysql php-fpm(或service命令,根据系统版本调整):确认服务状态为active

创建二级域名网站目录

每个二级域名通常对应一个独立的网站目录,用于存放该站点的文件资源,以blog.example.com为例,建议在/home/wwwroot/目录下创建子目录,结构清晰且便于管理:

mkdir -p /home/wwwroot/blog.example.com

创建完成后,将网站文件(如WordPress程序、静态HTML等)上传至该目录,并设置正确的文件权限:

lnmp如何绑定二级域名到指定子目录?

chown -R www:www /home/wwwroot/blog.example.com  # 设置所有者为Nginx运行用户
chmod -R 755 /home/wwwroot/blog.example.com      # 设置目录权限为755
```  如PHP),需确保PHP-FPM用户与Nginx用户一致(通常为`www`),避免权限问题。
### 三、配置Nginx虚拟主机
Nginx通过虚拟主机(Virtual Host)实现多域名绑定,核心配置文件位于`/usr/local/nginx/conf/vhost/`目录(路径可能因LNMP安装版本不同而调整)。  
#### 1. 创建虚拟主机配置文件
新建配置文件,如`blog.example.com.conf`,内容如下:  
```nginx
server {
    listen 80;
    server_name blog.example.com;  # 二级域名
    root /home/wwwroot/blog.example.com;  # 网站根目录
    index index.php index.html index.htm;  # 默认首页文件
    # 访问日志配置(可选)
    access_log /home/wwwlogs/blog.example.com.log;
    error_log /home/wwwlogs/blog.example.com.error.log;
    # PHP支持配置(若为静态网站可省略)
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;  # PHP-FPM监听地址
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    # 静态文件缓存优化(可选)
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires 7d;
        add_header Cache-Control "public, no-transform";
    }
}

加载虚拟主机配置

编辑Nginx主配置文件/usr/local/nginx/conf/nginx.conf,在http块中添加以下内容,引入所有虚拟主机配置:

include vhost/*.conf;

重启Nginx服务

执行以下命令使配置生效:

nginx -t && nginx -s reload  # 先检查语法,再平滑重启

若提示nginx: configuration is successful,则表示配置正确。

配置PHP-FPM(动态站点必需)

如果二级域名站点使用PHP(如WordPress、Discuz等),需确保PHP-FPM配置正确,LNMP默认会为每个站点创建独立的PHP-FPM池配置文件,位于/usr/local/php/etc/php-fpm.d/目录。

lnmp如何绑定二级域名到指定子目录?

检查PHP-FPM池配置

blog.example.com为例,确保池配置文件(如blog.example.com.conf)包含以下内容:

[blog.example.com]
listen = /tmp/php-cgi-blog.sock  # 监听套接字(或127.0.0.1:9000)
listen.owner = www
listen.group = www
listen.mode = 0660
user = www
group = www
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests = 1000

重启PHP-FPM服务

systemctl restart php-fpm

测试与问题排查

完成配置后,通过浏览器访问http://blog.example.com,检查是否正常显示网站内容,若无法访问,可按以下步骤排查:

  1. DNS解析问题:使用nslookup blog.example.com确认域名是否正确指向服务器IP;
  2. Nginx配置错误:通过nginx -t检查语法,或查看error.log定位错误;
  3. 文件权限问题:确认网站目录所有者为www,且权限为755;
  4. PHP-FPM问题:检查PHP-FPM服务状态及监听端口是否正常;
  5. 防火墙拦截:确保服务器的80端口(HTTP)已开放(如firewall-cmd --add-port=80/tcp --permanent)。

安全与优化建议

  1. 启用HTTPS:若涉及用户隐私数据,建议配置SSL证书(可通过Let’s Encrypt免费获取),将HTTP跳转至HTTPS;
  2. 限制访问IP:通过Nginx的allow/deny指令限制后台管理页面的访问IP;
  3. 定期备份:配置网站目录和数据库的自动备份,避免数据丢失;
  4. 配置防盗链:通过valid_referers指令防止其他网站盗用本站资源。

通过以上步骤,即可在LNMP环境下成功绑定二级域名,实现多站点的独立管理,实际操作中需注意细节,如文件权限、服务配置的匹配性,并根据业务需求灵活调整Nginx和PHP-FPM参数,以提升网站性能和稳定性。

赞(0)
未经允许不得转载:好主机测评网 » lnmp如何绑定二级域名到指定子目录?