作为一项学习练习,我使用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希望避免共享托管感到非常欣赏。)我是一个相对新手和志愿者可以在我的代码中实现的解决方案,还是应用程序必须找到一个新家?
答案 0 :(得分:0)
您必须根据您的chrooted目录设置doc_root
变量:
doc_root = "/home/projectmana"
cgi.fix_pathinfo = 0
你在php.ini文件中执行此操作 - 由于您在共享服务器环境中,这似乎不适合您。使用Apache作为Web服务器时,可以使用.htaccess
文件并通过php_value
在那里设置正确的PHP指令。
答案 1 :(得分:0)
此实例中的解决方案是覆盖缓存的位置并记录目录according to the cookbook。但是,这本身会导致cache:clear
命令失败。如果我无法自己找到问题,那么问题的答案就必须出现在另一个问题中。
此处的其他解决方案无法正常工作,因为当Apache服务器运行FastCGI时,.htaccess中的任何php设置都会导致服务器错误。清除缓存从未解决,因此网站被移动到非CGI主机。