Ошибка прогрева кеша Symfony на производстве

Похоже, что только на рабочем сервере прогрев кеша вызывает ошибку. Вот как я пытаюсь прогреть кеш:

$ rm -rf app/cache/*
$ chmod -R 777 app/cache/
$ php app/console doctrine:cache:clear-metadata --env=prod
$ php -r "apcu_clear_cache();"
$ php app/console cache:warmup --env=prod --verbose

В моей локальной среде разработчиков это работает как шарм. Я использую Symfony 2.8.22 и PHP 7.0. Ошибка на моем производственном сервере:

[Symfony\Component\Debug\Exception\FatalErrorException]                                           
Compile Error: require(): Failed opening required '/home/wingman/Symfony/app/cache/pro_/doctrine  
/orm/Proxies/__CG__CmsCoreBundleEntityPagePageGroup.php'  
(include_path='.:/opt/alt/php70/usr/share/pear')                                                                                   

Exception trace:
/home/wingman/Symfony/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php:209

Я уже сократил сущность, о которой идет речь, до минимума:

/**
 * @ORM\Table(name="cms_cr_page_group")
 * @ORM\Entity(repositoryClass="Cms\CoreBundle\Entity\Page\PageGroupRepository")
*/
class PageGroup {

  /**
   * @ORM\Id
   * @ORM\Column(type="integer", options={"unsigned":true})
   * @ORM\GeneratedValue(strategy="AUTO")
   */
  private $id;

1 ответ

Кэш APCU недоступен из командной строки, вам нужен веб-контекст, чтобы иметь возможность его очистить.

Лично я использую инструмент с именем cachetool.phar в своем проекте, чтобы очистить кэш ACPU (на самом деле он предлагает больше).

Итак, чтобы очистить кеш APCU:

php cachetool.phar apcu:cache:clear --fcgi=127.0.0.1:9000 (адаптировать порт PHP-FPM/PHP-CGI)

Попробуйте также очистить запрос php app/console doctrine:cache:clear-query кеш, если проблема не устранена.

Другие вопросы по тегам