我在部署Symfony2应用程序时遇到问题。我只能通过ftp访问服务器,没有命令行。我通过umask:设置权限
umask(0000);
我已将app/cache、app/logs、web/myUploadFolder的权限更改为"777-R"。
我无法解决的问题是:
- 我无法上传文件。localhost上一切正常,但在生产服务器中,使用文件创建实体的操作停止。没有错误,没有异常,没有日志显示,只有空白页
当我在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/)