2014-02-11 143 views
3

有我与现在面临的一个大问题非常缓慢引导 - symfony的需要7-10sec来引导。一些研究表明,这是因为symfony在开始时会产生大量文件夹杂。Symfony2的 - 在共享主机

在我的本地机器上,我可以通过在php.ini中增加realpath_cache_size设置来修复它,但是在共享主机上这不起作用(因为open_basedir限制有效,php在这种情况下禁用实际路径缓存)。

现在我坚持为obviosly应用程序与如此庞大的引导延迟使用。 有没有人有这个问题..我该如何解决它?

+0

会出现这种情况只有你清理缓存或在每次请求后的第一次?你使用DEV还是PROD环境? –

+0

这是对每个请求,产品环境 –

+0

首先要检查的是DEV env日志文件。我在共享主机上使用Sf2.0.x和Sf2.3.x,并且网站很少加载1s。你对每个请求都做了什么重逻辑? –

回答

3

有很多方法都固定symfony的引导。

一些提示:

  • 确保您使用“刺”的环境(生产设置:调试和分析禁用缓存启用,那么详细的日志),
  • 在高QPS,不要” T选用默认的PHP会话处理程序,它使用用户的会话文件的文件锁定,从而拒绝parralelized查询(如果你使用Ajax很多它可以伤害了很多),
  • 使用的文件系统可以为高速缓存相当缓慢(尤其是在共享主机上):将缓存目录放在tmpfs挂载点下或覆盖缓存后端以便使用某些东西例如文件系统(请参阅http://nerdpress.org/2012/07/10/caching-data-in-symfony2)。

请参见下面的清单涵盖的Symfony2应用deployement的基本生产: http://www.symfony2-checklist.com/

+0

包括*使用文件系统可以说是相当缓慢的*请提供一个解决方案,或者至少一个建议。 –

+0

通常,我为缓存目录创建一个tmpfs挂载点,但您可以覆盖缓存后端并使用(例如)memcache。 本文将向您展示您可以做什么的示例: http://nerdpress.org/2012/07/10/10/caching-data-in-symfony2/ –

+0

我的问题确实是open_basedir(请参阅https:// bugs .php.net/bug.php?ID = 53263)。它不允许实时路径被缓存,我只是不知道如何修复它 –