Nginx 和 PHP-FPM - 无法打开主脚本错误

Nginx 和 PHP-FPM - 无法打开主脚本错误

我有一个博客,在查看单个帖子时有一些重写规则。查看由名为 view.php 的文件处理。我在 vhost 配置中使用了一些重写规则,如下所示:

location /view {
  rewrite ^/view/([^/.]+)?/?(.*) /view1.php?pid=$1&$query_string;
}

这使得 URL 看起来像这样:

http://domain.com/view/xxxx

其中 xxxx 是帖子 ID。在同一页面上,我有一个社交分享插件,其中包含一个名为 share.php 的文件,该文件位于与 view.php 文件相同的目录中。该插件运行正常,但我在日志中收到以下错误:

FastCGI sent in stderr: "Unable to open primary script: /var/www/domain.com/view/xxxx/share.php (No such file or directory)"

我猜想这与我的 nginx 配置文件中的上述重写规则有关。我该如何解决这个问题?我是否应该在 vhost 配置文件中为 share.php 文件添加特定的重写规则?

这是我的 php 配置:

location ~ \.php$ {
root   /var/www/domain.com;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_ignore_client_abort on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

答案1

这里的重要参数是 SCRIPT_FILENAME 参数。您可以将该行更改为 $document_root/share.php,或者,如果您愿意,可以更改为 /var/www/domain.com/share.php $fastcgi_script_name 使用 requestm 位置作为路径

问候

相关内容