Symfony2部署 - prod中的空白页面

时间:2014-09-30 13:54:07

标签: php symfony

我在部署Symfony2应用时遇到了问题。我只能通过ftp访问服务器,没有命令行。 我通过umask设置权限:

umask(0000);

我已将app / cache,app / logs,web / myUploadFolder的权限更改为“777 -R”。

我无法管理的问题是:

  1. 我无法上传文件。在localhost上一切正常,但在生产服务器中,停止创建包含文件的实体。没有错误,没有例外,没有显示日志,只有空白页。
  2. 当我在app.php或app_dev.php中将debug设置为true时,我也得到了空白页:

    $ kernel = new AppKernel('prod',true);

  3. 所以调试是如此困难,我认为问题在于权限......任何想法?提前谢谢。


    编辑: 我设法访问调试模式,答案如下: answer

    我认为调试模式下的空白页和上传文件中的空白页有相同的原因,但可能不是真的。我在这里创建了更多细节的分离问题: request blank page problem

3 个答案:

答案 0 :(得分:1)

如果你使用2.2以上的symfony版本来启用调试简单 $ kernel = new AppKernel(' prod',true);是不足够的。在它上面放置下面的行,以正确显示任何PHP错误(空白页的最可能的原因)。 \的Symfony \元器件\调试\调试::启用(1);

我遇到的另一件事是它仍然没有显示功能参数不匹配错误。要处理相同的事情,请在ErrorHandler.php,handleFatal()方法中对symfony代码进行临时更改,并在检查$ type的行中包含E_RECOVERABLE_ERROR。 这至少会在页面上显示错误。

答案 1 :(得分:1)

好的,我花了很多时间试图了解发生了什么。调试问题出在我的.htaac​​ess:

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 /)