6

我正在尝试按照此处的说明通过 fastCGI 在 HHVM (3.0) 和 Apache (2.4) 上部署 Symfony2 (2.4) 应用程序 - https://github.com/facebook/hhvm/wiki/FastCGI

虽然我可以通过这种方式正确执行单个 php 文件,但它似乎不适用于 Symfony2 路由系统。路由已正确解析(例如 localhost/myapp/web/app_dev.php/my/route/to/something),但页面本身不会加载。相反,页面只是输出“未找到”,并且 HHVM 记录以下内容:

没事做。传递一个 .php 文件来运行,或者使用 -m server

这似乎表明它认为它没有通过适当的 php 文件。

应该注意的是,使用 HHVM 2.x 附带的内置网络服务器进行部署可以正常工作。但是,从 HHVM 3.0 开始不再支持此服务器。

我不知道要更改哪些配置才能完成这项工作。即使是导致此问题得到正确解决的指针也是一个很好的答案。

4

1 回答 1

5

最后通过使用以下配置文件设法解决(大多数!)这个问题:

Eval {
    Jit = true
    JitWarmupRequests = 1
}

Log {
    Level = Info
    Header = true

    UseLogFile = true
    File = /var/log/hhvm_error.log

    Access {
        * {
            File = /var/log/hhvm_access.log
        }
    }
}

Server {
    IP = 127.0.0.1
    Port = 9000
    ThreadCount = 77

    # Change to match your local root 
    SourceRoot = /opt/lampp/htdocs/

    MaxPostSize = 65  # in MB
}

VirtualHost {
 * {
   Pattern = .*
   RewriteRules {
      * {
        pattern = .?

        # change to app.php for production use
        to = app_dev.php

        # append the original query string
        qsa = true
      }
   }
 }
}

Stats {
    Web = true
    Memory = true
    SQL = true
}

Http {
    DefaultTimeout = 5          
    SlowQueryThreshold = 5000
}

这是基于我在这里找到的 HHVM 2.* 的配置:http: //labs.qandidate.com/blog/2013/10/21/running-symfony-standard-on-hhvm/

此外,如果您使用 Doctrine,则必须修改您的依赖项以使其与 HHVM 正常工作,因为之前的错误:Symfony2 和 HHVM 声明 Doctrine\DBAL\Driver\PDOConnection::prepare() 必须是兼容的

于 2014-04-03T10:33:52.143 回答