Apache ProxyPass 无法正确提供 php 服务

Apache ProxyPass 无法正确提供 php 服务

我已将 Apache 配置为代理所有对 foo.bar.com 的请求(别名 /bazbar 除外)。配置的代理部分和代理传递部分均能正常工作,只是它将 index.php 作为纯文本文件提供。

如何让 Apache 正确提供 php 文件?这是我的配置。

<VirtualHost *:80>
  ServerName foo.bar.com
  Alias /bazbar /var/www/bazbar

  ProxyPreserveHost On

  ProxyPass /bazbar !

  <Location /bazbar>
    SetHandler None
  </Location>

  <Location />
    Order allow,deny
    allow from all
    ProxyPass http://localhost:8080
    ProxyPassReverse http://localhost:8080
  </Location>
</VirtualHost>

*注意我已经确认 php 配置正确,因为当我进入http://localhost/somescript.phpphp 渲染正确

答案1

查看 <Location /bazbar> 部分。SetHandler None 禁用该位置的所有处理程序。您需要删除该指令才能使其按预期工作。

答案2

如果你访问http://本地主机:8080/在那台机器上,index.php 是作为文本文件提供的,还是在服务器上运行的?在代理的情况下,apache 只会获取它所得到的内容,并将其反馈给客户端。我的第一眼就在那里。

相关内容