1

作为一个学习练习,我使用 Symfony 为当地的非营利组织更新了一个现有的应用程序。开发是在 Windows 环境中进行的。现在应用程序已经安装在他们的 ISP 的共享主机上,我开始了解 FastCGI 服务器上的 chroot。有这样的错误:

PHP 致命错误:未捕获的异常 'UnexpectedValueException' 带有消息“无法打开流或文件“/home/projectmana/www2.projectmana.org/app/logs/prod.log”:无法打开流:没有这样的文件或/www2.projectmana.org/app/cache/prod/classes.php:4823 中的目录

ISP 回应:

坏道。PHP 在 /home/projectmana/ 中被 chroot。

好的。我明白这是问题所在。到目前为止,网络搜索还没有提供关于如何进行的线索。(我对 Symfony 想要避免共享托管的做法更加赞赏。)作为一个相对新手和志愿者,有没有可以在我的代码中实现的解决方案,或者应用程序是否必须找到一个新家?

4

2 回答 2

0

这种情况下的解决方案是根据说明书覆盖缓存和日志目录的位置。但是,这本身会导致cache:clear命令失败。如果我自己找不到该问题的答案,则必须出现在另一个问题中。

更新

此处的其他解决方案无法工作,因为当 Apache 服务器运行 FastCGI 时 .htaccess 中的任何 php 设置都会导致服务器错误。清除缓存从未解决,因此该站点被移至非 CGI 主机。

于 2013-10-28T14:14:16.113 回答
0

您必须doc_root根据您的 chrooted 目录设置变量:

doc_root = "/home/projectmana"
cgi.fix_pathinfo = 0

您在 php.ini 文件中执行此操作 - 由于您在共享服务器环境中,这似乎不是您的选择。当使用 Apache 作为网络服务器时,您可以使用一个.htaccess文件并通过php_value.

于 2013-10-27T21:58:35.367 回答