关于Nginx open() “/xxx/xxxx(dir path)” failed (13: Permission denied)的错误

本文来自:http://laymanz.com/blog/?p=239

在我的Nginx上新增了一个虚拟主机,访问时出现403。
Nginx的error.log 报以下错误: *2658 open() “/xxx/xxxx(dir path)” failed (13: Permission denied)

错误原因:
1. 运行nginx worker进程的帐号没有目标访问目录的读与执行权限。
2. 运行nginx worker进程的帐号没有目标访问文件的读权限。

写个例子。
虚拟主机设置如下:

server {
listen 80;
server_name sample.com;

location / {
root /home/sample/html/;
index index.html;
}
}

默认状态下,nginx worker进程是以nobody的帐号运行的。这可以用ps aux| grep nginx命令查看。

nobady帐号必须具备/home/sample/html/整个目录的读与执行权限。
如果要访问sample.com/index.html,那么nobady帐号必须具备/home/sample/html/index.html的读权限。否则就会报错。


你遇到的两个问题分别是: --- ## ❗问题 1:创建软链接失败 ``` ln: failed to create symbolic link '/usr/bin/nginx': Permission denied ``` ### ✅ 解决方法: 你需要使用 `sudo` 来在 `/usr/bin/` 这类系统目录下创建软链接: ```bash sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx ``` 这将允许你全局使用 `nginx` 命令。 --- ## ❗问题 2:Nginx 启动失败,权限不足 ``` nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied) 2025/08/21 15:09:39 [emerg] 73690#0: open() "/usr/local/nginx/logs/nginx.pid" failed (13: Permission denied) ``` ### ✅ 解决方法: Nginx 默认是以 `nginx` 用户运行的,而 `/usr/local/nginx/logs/` 目录的权限属于 `root` 或当前用户,导致权限不足。 #### 方法一:使用 `sudo` 启动 Nginx(推荐) ```bash sudo nginx ``` 这样 Nginx 就有权限访问 `/usr/local/nginx/logs/` 目录。 #### 方法二:修改日志目录权限 你可以将 `/usr/local/nginx/logs` 的权限改为当前用户: ```bash sudo chown -R $USER:$USER /usr/local/nginx/logs ``` 然后你就可以不加 `sudo` 启动 Nginx: ```bash nginx ``` --- ## ✅ 推荐完整修复流程 ```bash # 创建软链接 sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx # 修改日志目录权限 sudo chown -R $USER:$USER /usr/local/nginx/logs # 测试配置 nginx -t # 启动 Nginx nginx ``` --- ## 📚 解释说明 - `ln -s` 是创建软链接命令,但 `/usr/bin` 是系统目录,需要 `sudo` 权限。 - Nginx 默认日志路径是 `/usr/local/nginx/logs/`,如果该目录权限不属于当前用户,会导致写入失败。 - 使用 `sudo` 可以绕过权限限制,或者你可以手动修改目录的所有者。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值