默认情况下,Apache+Nginx反向代理不提供index.php服务

默认情况下,Apache+Nginx反向代理不提供index.php服务,apache,nginx,fastcgi,reverse-proxy,Apache,Nginx,Fastcgi,Reverse Proxy,我有很多网站都能很好地使用nginx+php-fastcgi,我没有任何抱怨!唯一不起作用的是一个名为Gallery3的PHP gallery应用程序。遗憾的是,我不得不在这个应用程序中使用Apache。我的问题如下: gallery.wfto.cc-无法下载包含index.PHP的PHP代码的未命名文件,因为该文件未被解析 gallery.wfto.cc/-不起作用 gallery.wfto.cc/index.php-不起同样的作用 gallery.wfto.cc/index.php/-Wor

我有很多网站都能很好地使用nginx+php-fastcgi,我没有任何抱怨!唯一不起作用的是一个名为Gallery3的PHP gallery应用程序。遗憾的是,我不得不在这个应用程序中使用Apache。我的问题如下:

gallery.wfto.cc-无法下载包含index.PHP的PHP代码的未命名文件,因为该文件未被解析

gallery.wfto.cc/-不起作用

gallery.wfto.cc/index.php-不起同样的作用

gallery.wfto.cc/index.php/-Works

gallery.wfto.cc:9001所有变体-工程

我不知道发生了什么事。我在下面介绍了我的大多数配置。/etc/nginx/conf.d/proxy.conf是一个。。。一般的代理配置,没有什么特别的

##NGINX CONFIG##
server {
    listen 80; ## listen for ipv4
    listen [::]:80 default ipv6only=on; ## listen for ipv6

    root /var/www/vhosts/wfto.cc/subdomains/gallery;

    server_name gallery.wfto.cc;
    access_log /var/log/nginx/gallery.wfto.cc.access.log;

    location / {
        proxy_pass http://127.0.0.1:9001;
        include /etc/nginx/conf.d/proxy.conf;
    }
}
## APACHE CONFIG ##
<VirtualHost *:9001>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/vhosts/wfto.cc/subdomains/gallery
        <IfModule mod_fastcgi.c>
                AddHandler php5-fcgi .php
                Action php5-fcgi /php5-fcgi
                Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
                FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
        </IfModule>
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/vhosts/wfto.cc/subdomains/gallery/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

在apache conf中添加以下内容:

<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>

我不知道从什么时候开始工作,但如果您正在更改服务器配置,请确保完全清除浏览器的缓存。

我知道这是一条古老的线索,但因为,对于那些在谷歌搜索解决方案并在此处找到您的问题的人来说,可能值得添加另一个更为最新的答案

以下由works提供的解决方案:

由于互联网变化无常,网站来来往往,他的博客从2015年开始只有两篇文章,显然他没有更新…,考虑到所有信用都是由Jon Miller提供的,以下是工作配置:

服务器{ 服务器名称; 听80; 根 访问日志; 错误日志; index.php; 地点/{ 位置~/index\.php/?。+${ try_files$uri/index.php?kohana_uri=$2&$args; 位置~/var/thumbs/*/.album.jpg{ 允许直接访问相册大拇指 } 位置~/\.ht | tpl\.php?| sql | inc\.php | db${ 否认一切; } 位置~/var/uploads | tmp |日志{ 否认一切; } 位置~/bin{ 否认一切; } 位置~/var/albums |拇指|调整大小{ 重写^/var/albums | thumbs | resizes/*$/文件_proxy/$2 last; } 位置~*\.js | css | png | jpg | jpeg | gif | ico | ttf${ try_files$uri/index.php?kohana_uri=$uri&$args; 过期30天; } } location=/index.php{ 包括fastcgi_参数; fastcgi_index.php; fastcgi_split_path_info^.+\.php.*$; fastcgi\参数脚本\文件名$document\根$fastcgi\脚本\名称; fastcgi_参数路径_信息$fastcgi_路径_信息; fastcgi_pass localhost:9000;//根据需要进行调整 } } } 根据Jon Miller的说法,使上述所有功能正常工作的真正诀窍是更改application/config/config.php上的一行:

$config[索引页面]=;
免责声明:我已将上述解决方案作为一个功能请求发布在了上,作为一个单独的文件README.md中,无论怎样,因为Gallery3管理员必须意识到,他们现在可以在nginx和至少PHP7.4下工作。

仍然不起作用。我不认为这与DirectoryIndex有关,因为当我通过gallery.wfto.cc:9001直接访问Apache时,它可以正常工作;您是否确定nginx服务器条目是实际使用的,而不是其他意外情况,例如URL中的域名拼写错误?检查访问日志以确保。还有一些更愚蠢的事情需要检查:重新启动nginx,确保停止后没有正在运行的进程处于活动状态;如果将所有内容代理给Apache,请将root更改为空目录,然后nginx不需要访问内容。我将root更改为指向空目录空目录,但这不会改变任何内容。该服务器块是唯一捕获该子域上流量的服务器块。在更改为空目录后,您是否检查了Apache的访问日志?您的测试是否真的通过了Apache?如果您仍然得到相同的结果,我假设您下载了index.php的内容,那么这也可能意味着您的浏览器只是返回了一个缓存结果。。。。。是浏览器。我曾经清除过Chrome的缓存,但我每次都应该这样做;请看下面我自己的答案。