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

时间:2015-04-29 13:04:12

标签: php apache hhvm

我似乎无法配置HHVM和Apache,它一直给我一个404文件未找到错误。我的网站配置文件保存为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配置,我唯一改变的是我网站的根目录,它完成了上面配置文件中的目录。

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

我知道它已经有两个月了,但也许它可以帮助其他人(我在配置HHVM + Apache2时遇到过类似的问题)。

  1. 如果您还没有这样做,请尝试启用虚拟主机。问题sudo a2ensite www.example.com然后使用sudo service apache2 reload重新加载apache。
  2. 如果vhost正常并且您在vhost访问日志中看到了浏览器请求,那么这意味着Apache2不是那里的罪魁祸首。
  3. 因此,如果您仍然和我在一起并且前两个步骤没有帮助,请尝试以下操作,尽管在HHVM 3.7中它已经不再适用了(但它可能会如此) ,我只是在配置HHVM时遵循try-and-check方法,它通常可以工作)。打开/etc/hhvm/server.ini并将以下行附加到该文件:

    hhvm.server.fix_path_info = true
    
  4. 更改HHVM的配置后,发出sudo service hhvm restart。然后尝试刷新您的网站。应该都很好。

  5. 我有类似的问题,那时它是我配置为使用HHVM的所有Web服务器上最常见的修复程序。但是,在最新更新之后,我不得不在我的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