Доктрина 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