Symfony独特的缓存bug

时间:2017-12-09 13:59:46

标签: php symfony caching

当我更换控制器时,我没有看到任何变化。仅在两分钟后自动更改显示在网站上。 我使用netbeans工作,作为远程​​网站(FTP)运行。 如果我直接使用FileZilla更改控制器是一样的。 我当然使用开发环境。

现在请不要告诉我删除

  

var / cache文件夹

或使用php app / console

  

cache:clear --env = prod --no-debug

此帮助一次并引发图像错误。然后我必须等待2分钟。 2分钟后,该错误自动消失。我的更改是可见的,但如果我再次更改控制器,我有同样的问题。现在再次删除var / cache ..等待两分钟,更改是可见的。我不能那样工作。 Twig还​​可以,这个只有php。

图片

enter image description here

图片

我的网站/ app_dev.php

$loader = require __DIR__.'/../app/autoload.php';
Debug::enable();

$kernel = new AppKernel('dev', true);
//$kernel->loadClassCache();
Request::setTrustedHosts(array('^(.+\.)?finearts.klitom1.sldc.pl$')); 
$request = Request::createFromGlobals();

$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

最可能的原因:由于并发请求,您在服务器上重建缓存。您的托管/服务器分配给您的站点的CPU(php-fpm进程)有限,脚本超时非常低,没有足够的时间在一个请求中完全重建缓存。

如果您想继续进行实时编码,请按照以下步骤操作:

  1. 更新.htaccess以便在维护模式下设置您的网站,这样您就无法获得外部流量,只有您访问该网站
  2. 上传您的代码
  3. 运行app / console cache:clear --no-warmup --env prod
  4. 运行app / console cache:warmup --env prod #this使symfony通过CLI而不是php-fpm重建缓存
  5. 禁用维护模式
  6. 这是很多工作,它会像你已经提到的那样变慢,但它会让symfony再次运行起来更快。

    我推荐的步骤:

    1. 永远不要在生产服务器上进行实时编码。使用以下设置机器进行Web开发:https://symfony.com/doc/current/setup/homestead.htmlhttp://phansible.com/或Docker
    2. 设置一步式部署过程。示例:https://deployer.org/https://github.com/capistrano/capistrano如果您想要更复杂的设置,我可以为您提供更多,这些是最基本的设置。
    3. 使用存储库存储代码 bitbucket,github,gitlab,phabricator ......
相关问题