gpt4 book ai didi

php - 旧 Symfony 应用程序的问题

转载 作者:搜寻专家 更新时间:2023-10-31 21:17:31 30 4
gpt4 key购买 nike

我最近在一家网络报纸找到了一份工作。在网站上,我们有一个非常古老且重要的 Symfony 应用程序,它是为一位年长的开发人员编写的,已经消失很久了。该应用程序是神圣的:是报纸收入的血液。问题是我们没有备份,没有开发人员安装,什么都没有,只有生产安装当我来到这里时,我对这个冒险的决定感到非常惊讶。我一周前,应用程序开始失败。我对 Symfony 的经验为零(我是一名 Rails 开发人员),那个旧应用程序是“老而忠诚的狗,什么都不会失败”,但开始失败,每个人都吓坏了!

所以,我需要这个站点的 symfony 开发人员的帮助来找到一个“快速”的解决方案,同时我试图说服我的老板我们需要一个更专业的方法(以及时间和资源来做到这一点)问题是这个

每次人们使用该应用程序时,都会出现此消息

fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 17106016 bytes) in /path/to/symfony/config_core_compile.yml.php on line 3366

线条在这个函数的中间

public function shutdown()
{
if (!is_null($this->cache) && $this->cacheChanged)
{
$this->cacheChanged = false;
$this->cache->set('symfony.routing.data', serialize($this->cacheData));
}
}

我查看了谷歌,但只发现有同样问题的人,没有解决方案......请任何可以帮助我的人,请帮助我!

最佳答案

我会尝试先清除应用程序中的缓存,因为缓存可能非常大。

在 symfony 根文件夹中运行这个命令

php symfony clear:cache

如果那不能解决问题,我会增加内存限制,直到问题的根源被修复

所以在 index.php 文件中,在任何 symfony 加载发生之前添加这个

ini_set('memory_limit', '256M');

调试应用程序的最佳方式是使用内置的开发环境。向 symfony 网络根目录添加一个文件,该文件具有以下内容:

// this check prevents access to debug front controllers that are deployed by accident to production servers.
// feel free to remove this, extend it or make something more sophisticated.
if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1', 'YOUR IP ADDRESS HERE')))
{
die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.<!-- ' . $_SERVER['REMOTE_ADDR'] . ' -->');
}

require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');

$configuration = ProjectConfiguration::getApplicationConfiguration('[app name]', 'dev', true);
sfContext::createInstance($configuration)->dispatch();

不要忘记在第三行添加您的 IP 地址,以便您可以访问查看开发环境数据。

应用名称是您的 %symfony root%/apps 文件夹中应用的名称

关于php - 旧 Symfony 应用程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5516081/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com