我正在尝试将symfony移动到共享主机。
我把symfony结构移到了/,我的web文件夹是/public_html。
警告:require(/home/user/app/cache/prod/doctrine/orm/Proxies/_CG__UserBundleEntityUser.php):无法打开流:在第209行上的/home/user/vendor/common/lib/doctrine/common/Proxy/AbstractProxyFactory.php中没有这样的文件或目录
警告:require(/home/user/app/cache/prod/doctrine/orm/Proxies/_CG__UserBundleEntityUser.php):无法打开流:在第209行上的/home/user/vendor/common/lib/doctrine/common/Proxy/AbstractProxyFactory.php中没有这样的文件或目录
致命错误:require():无法在第209行上打开/home/user/vendor/common/lib/doctrine/common/Proxy/AbstractProxyFactory.php中所需的'/home/uuser/app/cache/prod/doctrine/orm/Proxies/_CG__UserBundleEntityUser.php'(include_path='.:/opt/php55/lib/php')
此错误仅在prod
环境中发生。dev
环境中未引发异常。
我尝试了以下方法:
rm -rf /app/cache + chmod 777
app/console cache:warmup
我使用Symfony 2.8.3。以下目录存在于本地和服务器上:
本地缓存:-/annotations,/tritch,/vic_uploloader+/条令,/translations
服务器缓存:-/annotations、/tritch、/vic_uploader
如果我将本地缓存上传到服务器,异常就会消失。
在尝试访问应用程序之前,您没有创建代理类。这通常通过以下方式完成:
app/console cache:warmup --env=prod
默认情况下,在prod
环境中禁用代理类的自动生成。您可以通过将其添加到您的配置中来启用类似于dev
环境的代理类的自动生成:
app/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
/app/config/doctrine.yml
更改自:
orm:
auto_generate_proxy_classes: "%kernel.debug%"
收件人:
orm:
auto_generate_proxy_classes: true
工作!
我已经更改了所有引用表达式"auto_generate_proxy_classes"的文件(我已经将值从"false"更改为"true"),这解决了问题:
- /供应商/条令/条令捆绑包/DoctrineBundle.php
- /供应商/条令/条令包/资源/doc/configuration.rest
- /供应商/条令/条令捆绑包/DependencyInjection/Configuration.php
- /供应商/条令/条令捆绑包/DependencyInjection/DoctrineExtension.php
- /app/config/config.php
- /app/cache/prod/appProdProjectContainer.php