2015-10-08 11 views
7

私も同様の質問をしましたが問題は解決しませんでした。Symfony2:存在しないパラメータを要求しました

私はOpenshiftでSymfony2アプリケーションをデプロイしています。それは私のWindows 10ラップトップ上でうまく動作しますが、私はOpenshiftで次のerror messageを取得しています:

Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException' 
with message 'You have requested a non-existent parameter "database_path". 
Did you mean one of these: "database_host", "database_port", "database_name", "database_user"?' 
in /var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php:106 Stack trace: #0 
/var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php(248): 
Symfony\Component\DependencyInjection\ParameterBag\ParameterBag->get('database_path') #1 [internal function]: 
Symfony\Component\DependencyInjection\ParameterBag\ParameterBag->Symfony\Component\DependencyInjection\ParameterBag\{closure}(Array) #2 
/var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php in 
/var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php on line 106 

config.ymlは次のとおりです。

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
    - { resource: services.yml } 
... 

doctrine: 
    dbal: 
     driver: pdo_sqlite 
     charset: UTF8 
     path:  "%kernel.root_dir%/../%database_path%" 
... 

マイparameters.ymlは次のとおりです。

parameters: 
    database_driver: pdo_sqlite 
    database_host: localhost 
    database_port: null 
    database_name: demo.db 
    database_user: root 
    database_password: null 
    database_path: /data/demo.db 
    ... 

と私config_prod.ymlは:

私は間違っていますか?

アップデートは

私は私のconfig.ymlに変更されました:

path:  "%kernel.root_dir%/../data/demo.db" 

と問題がなくなっていますが、私はなぜ知りません!

+1

dev環境でも例外が発生しましたか? 'cache:clear'を実行しましたか? – Federkun

+1

'app_dev.php'を実行してもこの問題はありませんでした。私はちょうど私のopenhiftアプリケーションにログインし、 'php app/console cache:clear --env = prod'を実行しました。私はコマンドラインから全く同じエラーを受け取っています... – JVerstry

+0

常にコンポーザーをインストールしていますが、symfonyはconfig.yml.distから新しいconfig.ymlを再生成します。あなたのconfig.yml.distを更新しましたか? openshift SSHから、config.ymlが大丈夫かどうかを確認してください。 '$ cat $ OPENSHIFT_REPO_DIR/app/config/parameters.yml' – felipsmartins

答えて

26

これはよくある間違いです。私は上記のコメントしているだけのように


作曲を実行している場合をインストールし、symfonyはparameters.yml.dist(もしあれば)に基づいて新しいparameters.ymlファイルを再生成します。
symfonyによって生成されたparameters.yml(コンポーザのインス​​トール後のイベント)が正常であるかどうかを常に確認することをお勧めします。また

あなたは( も良くPRODサーバにする必要がありコンフィグ付き)parameters.ymlファイルを更新するたびに、あなたはあまりにもファイル parameters.yml.distを更新する必要があります。

したがって、展開プロセスははるかに簡単です。

関連する問題