配置 nginx 和 php 时遇到问题

配置 nginx 和 php 时遇到问题

我一直无法让 php 脚本与 nginx 配合使用。调用脚本 my-url:90/useraccessauthorization/useraccessauthorization.php 会出现 404 错误。

以下是我的配置详情。有人能告诉我我遗漏了什么吗?提前致谢。

编辑:我还应该提到,运行“/etc/init.d/nginx reload”会给出结果:

重新加载 nginx 配置: nginx:[alert] 无法打开错误日志文件:open()“/var/log/nginx/error.log”失败(13:权限被拒绝) 2012/05/10 16:07:13 [warn] 18214#0:“user”指令仅当主进程以超级用户权限运行时才有意义,在 /etc/nginx/nginx.conf:1 中被忽略 nginx:配置文件 /etc/nginx/nginx.conf 语法正常 2012/05/10 16:07:13 [emerg] 18214#0:open()“/var/run/nginx.pid”失败(13:权限被拒绝) nginx:配置文件 /etc/nginx/nginx.conf 测试失败

在/etc/nginx/sites-available/default中:

server {
    listen   90;
    root /usr/share/nginx/www;
    index index.html index.htm;
    access_log  /var/log/nginx/top-secret-project.access.log;
    server_name localhost;

    location / {
          try_files $uri $uri/ /index.html;
    }

    location /doc {
          root /usr/share;
          autoindex on;
          allow 127.0.0.1;
          deny all;
    }
}

server {
          listen 90;
          listen my-url:90;
          server_name my-url;

          access_log  /var/log/nginx/saba.access.log;

          location /assets/ {
                  autoindex on;
                  alias /home/kkaisare/Workspaces/top_secret_project/client/web/assets/;
          }

          location /private_content_server/ {
                  alias /home/kkaisare/Workspaces/top_secret_project/store/content/private_content_server/;
                  autoindex on;
          }

          location /production_content_server/ {
                  alias /home/kkaisare/Workspaces/top_secret_project/store/content/production_content_server/;
                  autoindex on;
          }

          include /etc/nginx/fastcgi_php;
  }

在/etc/nginx/fastcgi_php中:

location /useraccessauthorization/\.php$ {
    fastcgi_pass   unix:/var/run/php-fastcgi/php.sock;
    fastcgi_param  SCRIPT_FILENAME  /home/kkaisare/Workspaces/top_secret_project/store/content/production_content_server/$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}

答案1

首先,您确实需要修复配置问题。如果您没有以 root 身份运行此程序,则不必尝试更改为其他用户。但是,如果您绑定到端口 90,那么您实际上需要以 root 身份启动,因此要么绑定到高于 1024 的端口,要么以 root 身份启动它,然后让 nginx 通过用户指令放弃特权。

其次是您的 pid 文件,由于您不是以 root 身份启动,因此您可能需要确保您的实际用户有权读取由 init 脚本创建的 pid 文件。在修复此问题之前,您无法动态重新加载配置。

最后,当上述问题解决后。然后从更改您的位置

location /useraccessauthorization/\.php$ {

location ~ ^/useraccessauthorization/.+\.php$ {

答案2

你的/etc/nginx/nginx.conf看起来像什么?从表面上看,您的错误是因为您没有以所有者或超级用户的身份重新加载 nginx。

仔细检查这些文件的权限,确认它们属于 nginx 用户(通常是 www/www),并且用户指令错误可以通过sudo /etc/init.d/nginx reload

相关内容