Symfony2部署-产品中的空白页


Symfony2 deploy - blank pages in prod

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

umask(0000);

我已将app/cache、app/logs、web/myUploadFolder的权限更改为"777-R"。

我无法解决的问题是:

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

    $kernel=新的AppKernel('prod',true);

所以调试很难,我认为问题出在权限上。。。有什么想法吗?提前谢谢。


编辑:我已成功访问调试模式,答案如下:回答

我认为调试模式下的空白页和上传文件时的空白页有相同的原因,但可能这不是事实。我创建了一个单独的问题,这里有更多详细信息:请求空白页问题。

如果您使用的是2.2以上的symfony版本,只需将$kernel=新的AppKernel('prod',true);还不够。将下面的行放在上面,以正确显示任何php错误(最可能的原因是页面为空)。''Symfony''Component''Debug''Debug::enable(1);

我遇到的另一件事是,它仍然没有显示函数参数不匹配的错误。要处理同样的问题,请在ErrorHandler.php中对符号代码进行临时更改,处理Fatal()方法,并在检查$type的行中包含E_RECOVERABLE_ERROR。这至少会在第页显示错误。

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

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

另请看问题的编辑部分。

$kernel = new AppKernel('prod', true)<>使用调试mod的prod环境可以查看错误,但您无权访问探查器来查看日志。要查看日志,您必须在app_dev.php前控制器中保留以下行:

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

然后访问您的网站,如下所示:

您的虚拟主机/app_dev.php/

(例如:site.local/app_dev.php/)