我在部署Symfony2应用时遇到了问题。我只能通过ftp访问服务器,没有命令行。 我通过umask设置权限:
umask(0000);
我已将app / cache,app / logs,web / myUploadFolder的权限更改为“777 -R”。
我无法管理的问题是:
当我在app.php或app_dev.php中将debug设置为true时,我也得到了空白页:
$ kernel = new AppKernel('prod',true);
所以调试是如此困难,我认为问题在于权限......任何想法?提前谢谢。
编辑: 我设法访问调试模式,答案如下: answer
我认为调试模式下的空白页和上传文件中的空白页有相同的原因,但可能不是真的。我在这里创建了更多细节的分离问题: request blank page problem
答案 0 :(得分:1)
如果你使用2.2以上的symfony版本来启用调试简单 $ kernel = new AppKernel(' prod',true);是不足够的。在它上面放置下面的行,以正确显示任何PHP错误(空白页的最可能的原因)。 \的Symfony \元器件\调试\调试::启用(1);
我遇到的另一件事是它仍然没有显示功能参数不匹配错误。要处理相同的事情,请在ErrorHandler.php,handleFatal()方法中对symfony代码进行临时更改,并在检查$ type的行中包含E_RECOVERABLE_ERROR。 这至少会在页面上显示错误。
答案 1 :(得分:1)
好的,我花了很多时间试图了解发生了什么。调试问题出在我的.htaacess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domena$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domena$
RewriteCond %{REQUEST_URI} !web/
RewriteRule (.*) /web/$1 [L]
大多数网站都提供此解决方案来更改您的DocumentRoot,但这会导致我出现问题,因此我删除了这一行并尝试使用“web”前缀访问app_dev.php:domena / web / app_dev.php以及所有内容工作正常。
如果您想将DocumentRoot写入管理员以更改虚拟主机配置,只需添加以下行:
DocumentRoot /path/to/domain/web
另请参阅问题的编辑部分。
答案 2 :(得分:0)
$kernel = new AppKernel('prod', true)
< =>使用debug mod的prod环境可以查看错误,但是您无权访问探查器以查看日志。
要查看日志,您必须将此行保留在app_dev.php
前端控制器中:
$kernel = new AppKernel('dev', true);
然后像这样访问您的网站:
yourvirtualhost / app_dev.php /
(例如:site.local / app_dev.php /)