默认情况下,Apache+Nginx反向代理不提供index.php服务
我有很多网站都能很好地使用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是一个。。。一般的代理配置,没有什么特别的默认情况下,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 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的缓存,但我每次都应该这样做;请看下面我自己的答案。