Доктрина кэша Symfony/orm/Прокси не удалось открыть поток/Proxy/AbstractProxyFactory.php на линии 209
Я пытаюсь переместить symfony на общий хост.
Я переместил структуру symfony в /, и моя веб-папка /public_html.
Предупреждение: требуется(/home/user/app/cache/prod/doctrine/orm/Proxies/__CG__UserBundleEntityUser.php): не удалось открыть поток: Нет такого файла или каталога в /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php в строке 209
Предупреждение: требовать (/home/user/app/cache/prod/doctrine/orm/Proxies/__CG__UserBundleEntityUser.php): не удалось открыть поток: Нет такого файла или каталога в /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php в строке 209
Неустранимая ошибка: требуется(): Требуется неудачное открытие'/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. Следующие каталоги присутствуют локально и на сервере:
ЛОКАЛЬНЫЙ КЭШ: - /аннотации, /ветка, /vich_uploader + /доктрина, /переводы
КЭШ СЕРВЕРА: - /примечания, /веточка, /vich_uploader
Если я загружу свой локальный кэш на сервер, исключение исчезнет.
1 answers
Вы не создавали прокси-классы до того, как попытались получить доступ к своему приложению. Обычно это делается с помощью:
app/console cache:warmup --env=prod
Автоматическое создание прокси-классов отключено по умолчанию в среде prod
. Вы можете включить автоматическую генерацию прокси-классов, аналогичных среде dev
, добавив это в свою конфигурацию:
Приложение/конфигурация/config_prod.yml
doctrine:
orm:
auto_generate_proxy_classes: true # <- change to true
proxy_dir: '%kernel.cache_dir%/doctrine/orm/Proxies'
proxy_namespace: Proxies