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

Jon*_*mon 8 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>
Run Code Online (Sandbox Code Playgroud)

请注意,我删除了我的实际网站名称,但它是针对子域名的,所以就是这样:subdomain.xyz.com.我已经尝试过如何解决这个问题,但无论我尝试过什么似乎都不起作用; 甚至人们在官方存储库上发布的GitHub问题似乎也不起作用.我也没有更改默认的apache配置,我唯一改变的是我的网站的根目录,它完成了上面配置文件中的目录.

有任何想法吗?谢谢.

小智 0

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

  1. 如果您尚未启用虚拟主机,请尝试启用它。sudo a2ensite www.example.com之后使用 发出并重新加载 apache sudo service apache2 reload
  2. 如果虚拟主机正常并且您的浏览器请求在虚拟主机访问日志中可见,那么这意味着罪魁祸首不是 Apache2。
  3. 因此,如果您仍然同意我的观点,并且前两个步骤没有帮助,请尝试以下操作,尽管在 HHVM 3.7 中不应再出现这种情况(但可能,我只是在以下情况下遵循尝试和检查方法)它涉及配置 HHVM,并且通常有效)。打开/etc/hhvm/server.ini并将以下行附加到该文件:

    hhvm.server.fix_path_info = true
    
    Run Code Online (Sandbox Code Playgroud)
  4. 更改 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'
Run Code Online (Sandbox Code Playgroud)

哦,请包含完整的 HHVM 和 Apache2 版本输出:

hhvm --version
apache2 -v
Run Code Online (Sandbox Code Playgroud)