使用 Apache 2.4 配置 HHVM 3.7 会给我一个 404?

Posted

技术标签:

【中文标题】使用 Apache 2.4 配置 HHVM 3.7 会给我一个 404?【英文标题】:Configuring HHVM 3.7 with Apache 2.4 gives me a 404? 【发布时间】:2015-07-08 19:00:31 【问题描述】:

我似乎无法配置 HHVM 和 Apache,它一直给我一个 404 file not found 错误。我的网站配置文件保存为www.example.com.conf,它包含:

<VirtualHost *:80>
        ServerName website.com
        ServerAdmin mail@website.com

        DocumentRoot /var/www/website.com/public_html/
        ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/website.com.com/public_html/$1

        ErrorLog $APACHE_LOG_DIR/error.log
        CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>

请注意,我删除了我的实际网站名称,但它是针对子域的,所以它是:subdomain.xyz.com。我已经尝试查找如何解决此问题,但是我尝试过的任何方法似乎都不起作用;甚至人们在官方存储库上发布的 GitHub 问题似乎也不起作用。我也没有更改默认的 apache 配置,我唯一更改的是我网站的根目录,它与上面配置文件中的目录有很大关系。

有什么想法吗?谢谢。

【问题讨论】:

apache是​​否正确加载了vhost? apachectl -S 应该列出所有加载的虚拟主机。一般调试过程是: 1. 检查 vhost 是否可用 2. 检查 apache error_log 3. 检查 vhost error_log 文件(在您的情况下,您似乎决定将其合并到“常见”error_log 中) 【参考方案1】:

我知道已经两个月了,但也许它可以帮助其他人(我在配置 HHVM + Apache2 时多次出现类似问题)。

    如果您还没有启用虚拟主机,请尝试启用。发出 sudo a2ensite www.example.com 并随后使用 sudo service apache2 reload 重新加载 apache。 如果 vhost 正常,并且您的浏览器请求在 vhost 访问日志中可见,则意味着罪魁祸首不是 Apache2。

    因此,如果您仍然和我在一起并且前两个步骤没有帮助,请尝试以下操作,尽管在 HHVM 3.7 中不应该再出现这种情况(但它可能,我只是按照 try-and-配置 HHVM 时的 check 方法,通常有效)。打开 /etc/hhvm/server.ini 并将以下行附加到该文件:

    hhvm.server.fix_path_info = true
    

    更改 HHVM 的配置后,发出 sudo service hhvm restart。然后尝试刷新您的网站。应该没问题的。

我有类似的问题,当时它是我配置为与 HHVM 一起使用的所有网络服务器上最常见的修复。但是,在最新的更新之后,我不得不从我的 hhvm server.ini 中注释掉那一行,以便我的代码能够正常工作——我读到他们以某种方式改变了服务器的参数,并且这个参数不再有用了,AFAIK。

我也尝试将该行放在/etc/hhvm/php.ini,但据我记得,它应该放在server.ini,因为它是一个服务器参数。

所以。试试看,如果有帮助,请告诉我。如果没有,请在您的网络服务器上发出以下命令并将输出粘贴到此处,以便我查看您是否安装了必要的模块

ls  /etc/apache2/mods-available | grep -E 'proxy|alias|fcgi|hhvm'
ls  /etc/apache2/mods-enabled | grep -E 'proxy|alias|fcgi|hhvm'

哦,请附上您的完整 HHVM 和 Apache2 版本输出:

hhvm --version
apache2 -v

【讨论】:

以上是关于使用 Apache 2.4 配置 HHVM 3.7 会给我一个 404?的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf 适用于Amazon EC2的HHVM t1.micro

MacOS Sierra:apachectl 正在使用来自 /usr/local/etc/apache2/2.4 而不是 /etc/apache2/ 的配置

ini HHVM Fastcgi的Nginx配置文件

ini HHVM 3.0上的Nginx配置示例

如何将 Apache 2.4 配置从 SSL 支持更改为 TLS

apache 2.4 解压版 与 PHP解压版 的安装配置