Доктрина Symfony Cache/orm/Proxies не открыла поток /Proxy/AbstractProxyFactory.php в строке 209

Я пытаюсь переместить symfony на общий хост.

Я перемещал структуру symfony в /, и моя веб-папка была /public_html.

Предупреждение: require (/home/user/app/cache/prod/doctrine/orm/Proxies/__ CG__UserBundleEntityUser.php): не удалось открыть поток: нет такого файла или каталога в /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php в строке 209

Предупреждение: require (/home/user/app/cache/prod/doctrine/orm/Proxies/__ CG__UserBundleEntityUser.php): не удалось открыть поток: нет такого файла или каталога в /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php в строке 209

Неустранимая ошибка: require(): Не удалось открыть окно "/home/user/app/cache/prod/doctrine/orm/Proxies/__CG__UserBundleEntityUser.php" (include_path = '.: /Opt/php55/lib/php') в /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php в строке 209

Эта ошибка возникает только в среде prod. Исключение не выбрасывается в среду dev.

Я попробовал следующее:

rm -rf /app/cache + chmod 777
app/console cache:warmup

Я использую Symfony 2.8.3. Следующие каталоги присутствуют локально и на сервере:

LOCAL CACHE: -/аннотации,/twig,/vich_uploader +/doctrine,/translations

SERVER CACHE: -/аннотации,/twig,/vich_uploader

Если я загружу свой локальный кеш на сервер, исключение исчезнет.

Ответы

Ответ 1

Вы не создавали прокси-классы, прежде чем пытались получить доступ к вашему приложению. Обычно это делается путем:

app/console cache:warmup --env=prod

Автоматическая генерация прокси-классов по умолчанию отключена в среде prod. Вы можете включить автоматическую генерацию прокси-классов, похожих на среду dev, добавив это в свою конфигурацию:

приложение /Config/config_prod.yml

doctrine:
    orm:
        auto_generate_proxy_classes:  true # <- change to true
        proxy_dir:            '%kernel.cache_dir%/doctrine/orm/Proxies'
        proxy_namespace:      Proxies