nginx+php-fpm 问题无法调用文件夹中的其他 php 文件

Posted

技术标签:

【中文标题】nginx+php-fpm 问题无法调用文件夹中的其他 php 文件【英文标题】:nginx+php-fpm issue not able to call other php files in folder 【发布时间】:2016-02-07 07:06:07 【问题描述】:

我有一个 nginxphp-fpm 配置,但是当我从浏览器访问它时,只有 index.php 正在执行,但我无法调用其余文件。

nginx 配置


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events 
    worker_connections  1024;
    use epoll;
    multi_accept on;


http 
keepalive_timeout 15;
    keepalive_requests 2048;
    server_tokens off;

   upstream php

    server unix:/tmp/php-cgi.socket;
   server serverip:9000;


 access_log  /var/log/nginx/access.log  main;
include /etc/nginx/conf.d/*.conf;


在 /etc/nginx/conf.d/ 中配置

    server 

        root /var/www/Cachet/public/;
       location / 
     try_files $uri $uri/ /index.php index.php;
    
        server_name  serverip ; # Or whatever you want to use
        listen 80 default;
        location ~* \.php$ 
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_keep_conn on;
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        





这些是 error.log 和 access.log 中的几行

2015/11/06 12:40:53 [错误] 19346#0: *1 FastCGI 在标准错误中发送: “无法打开主脚本:/var/www/Cachet/public/dashboard.php (没有这样的文件或目录)”,同时从 上游,客户端:客户端 IP,服务器:服务器 IP,请求:“GET /dashboard.php HTTP/1.1”,上游: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "服务器IP"

2015/11/06 12:41:05 [错误] 19346#0: *1 FastCGI 在标准错误中发送: “无法打开主脚本:/var/www/Cachet/public/autoload.php (没有这样的文件或目录)”,同时从 上游,客户端:客户端 IP,服务器:服务器 IP,请求:“GET /autoload.php HTTP/1.1",上游: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "服务器IP"

【问题讨论】:

【参考方案1】:

因为这里没有响应,所以在我同事的帮助下,我能够在配置文件中找到两个问题,因为我无法在单独的文件夹中调用多个 php 文件..

try_files $uri $uri/ /index.php index.php; 
instead it needed 
try_files $uri $uri/ /index.php$is_args$args;

由于它没有加载图像,因此缺少的行是 包括/etc/nginx/mime.types;在 conf.d/default.conf 的位置块中。

【讨论】:

以上是关于nginx+php-fpm 问题无法调用文件夹中的其他 php 文件的主要内容,如果未能解决你的问题,请参考以下文章

PHP返回页面空白原因分析-Nginx+PHP

Nginx报502 php-fpm重启问题

使用 Nginx + PHP-FPM 拒绝访问 PHP 文件 (403)

Nginx调用远程php-fpm

记一次安装Nginx+php-fpm安装后无法解析.php文件,状态码200,但显示空白页

如果正在进行流式下载,Nginx PHP-FPM无法提供请求