web-dev-qa-db-ja.com

Symfony Cacheのdoctrine / orm / Proxiesは、209行目のストリーム/Proxy/AbstractProxyFactory.phpを開けませんでした

Symfonyを共有ホストに移動しようとしています。

Symfony構造を/に移動し、Webフォルダーは/ public_htmlです。

警告:require(/ home/user/app/cache/prod/doctrine/orm/Proxies/__ CG__UserBundleEntityUser.php):ストリームを開けませんでした:/ home/user/vendor/doctrine/common/lib /にそのようなファイルまたはディレクトリはありません209行目のDoctrine/Common/Proxy/AbstractProxyFactory.php

警告:require(/ home/user/app/cache/prod/doctrine/orm/Proxies/__ CG__UserBundleEntityUser.php):ストリームを開けませんでした:/ home/user/vendor/doctrine/common/lib /にそのようなファイルまたはディレクトリはありません209行目のDoctrine/Common/Proxy/AbstractProxyFactory.php

致命的なエラー: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を使用します。次のディレクトリがローカルおよびサーバー上に存在します。

ローカルキャッシュ:-/ annotations、/ twig、/ vich_uploader +/doctrine、/ translations

サーバーキャッシュ:-/ annotations、/ twig、/ vich_uploader

ローカルキャッシュをサーバーにアップロードすると、例外が消えます。

17
Luiz

アプリケーションにアクセスする前に、プロキシクラスを作成しませんでした。これは通常、次の方法で行われます。

app/console cache:warmup --env=prod

プロキシクラスの自動生成は、prod環境ではデフォルトで無効です。これをconfigに追加することにより、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
57