我似乎无法配置HHVM和Apache,它一直给我一个404文件未找到的错误。我的网站配置文件另存为www.example.com.conf,其中包含:

<VirtualHost *:80>
        ServerName website.com
        ServerAdmin [email protected]

        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配置,唯一更改的是我网站的根目录,该目录在上面的配置文件中起到了很大的作用。

有任何想法吗?谢谢。

最佳答案

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

  • 如果尚未启用虚拟主机,请尝试启用它。发出sudo a2ensite www.example.com,然后使用sudo service apache2 reload重新加载apache。
  • 如果虚拟主机正常,并且您的浏览器请求在虚拟主机访问日志中可见,则表明不是Apache2才是罪魁祸首。
  • 因此,如果您仍然与我在一起,但前两个步骤无济于事,请尝试以下操作,尽管在HHVM 3.7中不再应该如此(但是可能,我只是遵循了try-and-check方法在配置HHVM时,通常可以正常运行)。打开/etc/hhvm/server.ini并将以下行添加到该文件:
    hhvm.server.fix_path_info = true
    
  • 更改HHVM的配置后,发出sudo service hhvm restart。然后尝试刷新您的网站。一切都应该很好。

  • 我遇到了类似的问题,那时它是配置为与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
    

    关于php - 使用Apache 2.4配置HHVM 3.7会给我404吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29944632/

    10-12 16:44