Nginx 权限 13

Nginx 权限 13

我在共享主机上,有权继承 nginx 根安装并覆盖其配置文件(注意:我不想在我的主目录中编译我自己的 nginx)。

我编写了一个启动/重新加载/停止脚本,该脚本运行良好,但是我一直收到以下错误

启动脚本

#!/bin/bash

# Set this to your nginx configuration file and PID

CONFIG=~/nginx/nginx.conf
PIDFILE=~/nginx/nginx.pid


# Do not change anything below unless you know what you do

DAEMON=/usr/local/nginx/sbin/nginx
NAME="nginx"
PATH=/sbin:/bin:/usr/sbin:/usr/bin
OPTS="-c $CONFIG"

...

我的配置:

worker_processes  4;

error_log  /home/myusername/nginx/error.log;
pid        /home/myusername/nginx/nginx.pid;

events {
    worker_connections  8192;
    multi_accept on;
    use epoll;
}

http {
    error_log /home/myusername/nginx/error.log;
    access_log /home/myusername/nginx/access.log;
    server_names_hash_max_size 8192;
    server_names_hash_bucket_size 128;
    include       /etc/nginx/mime.types;
    underscores_in_headers on;
...

错误:

Reloading nginx configuration: [alert]: could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied)
nginx.

所以看来它没有正确读取我的错误和访问日志位置,我该如何解决这个问题,谢谢!

答案1

NGINX 在读取您的配置文件之前,会搜索内置错误日志位置。

您可以在这里找到它:http://wiki.nginx.org/CoreModule 在 error_log 部分下。

“另请注意,从 0.7.53 版本开始,nginx 将使用内置的默认错误日志位置,直到它读取配置文件为止。如果运行 nginx 的用户没有对此日志位置的写入权限,则 nginx 将发出如下警报:

[警报]:无法打开错误日志文件:open()“/var/log/nginx/error.log”失败(13:权限被拒绝)“

答案2

我已经能够使用 -p 选项使其工作,将前缀设置为我可以写入的路径。

$ nginx -p . -c my-nginx.conf

相关内容