我正在尝试通过 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 记录以下内容:
Nothing to do. Either pass a .php file to run, or use -m server
这似乎表明它认为尚未向其传递正确的 php 文件。
应该注意的是,使用 HHVM 2.x 附带的内置网络服务器部署工作正常。但是,自 HHVM 3.0 起不再支持此服务器。
我不知道要更改哪些配置才能使这项工作正常进行。即使是导致此问题得到妥善解决的指针也是一个很好的答案。
最佳答案
最终通过使用以下配置文件设法解决(大部分!)问题:
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,由于之前的错误:Symfony2 and HHVM Declaration of Doctrine\DBAL\Driver\PDOConnection::prepare() must be compatible,您将不得不修改您的依赖项以使其与 HHVM 一起正常工作。
关于php - 在 HHVM + Apache + fastCGI 上部署 Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22827944/