“include 文件丢失”本质是路径不存在、文件不匹配或权限不足;需复制报错路径用ls -l验证,检查目录是否存在及x权限,补全缺失目录或文件,确保Nginx用户对路径有r-x权限。

遇到 “include 文件丢失” 提示,本质是 Nginx 在解析配置时,发现 include 指令指向的路径不存在、文件名不匹配,或权限不足——不是语法错误,而是路径层面的“找不到”。解决关键在于快速定位并补全缺失环节。
确认 include 指令具体指向哪条路径
报错通常不会直接说“xxx.conf 不存在”,而是类似:
nginx: [emerg] open() "/etc/nginx/conf.d/default.conf" failed (2: No such file or directory)
这个引号里的完整路径就是你要处理的目标。别猜、别跳过,直接复制它。
- 用
ls -l "全路径"验证文件是否存在(注意引号,防空格/特殊字符) - 如果路径末尾带
*(如/etc/nginx/conf.d/*.conf),说明是通配符匹配,需检查整个目录是否存在且非空 - 用
ls -ld /etc/nginx/conf.d/看父目录是否存在、权限是否含x(进入权限)
补全缺失的目录或文件
常见情况分两类:
-
目录不存在:比如报错路径是
/etc/nginx/sites-enabled/example.com.conf,但sites-enabled目录根本没创建。执行:sudo mkdir -p /etc/nginx/sites-enabled -
文件缺失但目录存在:比如
include /etc/nginx/conf.d/phpmyadmin.conf;,而该文件被误删。这时有两种选择:
• 若有备份,直接恢复对应文件;
• 若只是临时需要启动,可新建一个最小合法配置(如仅写server { listen 80; return 200 "OK"; })并保存为该路径
检查 include 路径写法是否合规
很多问题源于路径本身不严谨:
- 相对路径以
nginx.conf所在目录为基准。例如include conf.d/*.conf;要求conf.d在/etc/nginx/conf.d/(因nginx.conf通常在/etc/nginx/) - 避免中文引号、全角斜杠、复制粘贴带的不可见字符。建议手动重敲路径,或用 Tab 键自动补全
- 通配符路径中,确保目录下真有
.conf文件。空目录 +*.conf不会报错,但也不会加载任何内容
验证 Nginx 用户能否读取该路径
即使路径和文件都存在,Nginx 工作用户(如 www-data 或 nginx)若无读取权限,也会提示“not found”:
- 运行:
ls -l /etc/nginx/conf.d/ /etc/nginx/conf.d/*.conf 2>/dev/null - 确认每个文件有
r权限,每个目录有r-x权限(x对目录是必须的) - 修正权限示例:
sudo chmod 644 /etc/nginx/conf.d/*.confsudo chmod 755 /etc/nginx/conf.d/


















