FastCGI 在 stderr 中发送:无法打开主脚本

FastCGI 在 stderr 中发送:无法打开主脚本

情况:

服务器 A 和服务器 B 安装了相同的 Ubuntu 14.04、相同的 nginx 版本(1.4.6)、相同的虚拟主机(domain.com)和 joomla 文件夹(从服务器 A rsync 到 B)

但服务器 A 只能显示其首页,并且会在任何菜单项上显示“未指定文件输入”。

如果我更改 /etc/hosts 以便服务器 B 测试后服务器 A 的 IP 使用 domain.com,它不会立即失败。几分钟后才会出现错误。

nginx 的错误日志中有几条消息,如下所示:

2015/02/23 12:01:57 [error] 15515#0: *260609 FastCGI sent in stderr: "PHP message: PHP Notice:  Undefined property: JPagination::$pagesTotal in /var/www/joomla/templates/ashton/html/com_content/featured/default.php on line 76" while reading response header from upstream, client: 10.224.202.152, server: www.domain.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "www.domain.com" 

答案1

通过添加“fastcgi_param SCRIPT_FILENAME”解决了这个问题

例子如下

server {
    listen 80;
    root /var/www/joomla;
    index index.php index.html index.htm;
    server_name www.domain.com;

    location / {
        try_files $uri $uri/ /index.php?q=$request_uri;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

相关内容