SOで同様の質問を確認しましたが、私の問題は解決しませんでした。
私はOpenshiftにSymfony2アプリケーションをデプロイしています。私のWindows 10ラップトップでうまく動作しますが、Openshiftで次の エラーメッセージ が表示されます。
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
は:
imports:
- { resource: config.yml }
...
何が悪いのですか?
更新
config.yml
を次のように変更しました:
path: "%kernel.root_dir%/../data/demo.db"
問題はなくなりましたが、理由はわかりません!
これはよくある間違いです。
上記と同じように:
composer installを実行すると、symfonyはparameters.yml
(存在する場合)に基づいて新しいparameters.yml.dist
ファイルを再生成します。
symfonyによって生成されたparameters.yml
(ポストインストールイベント、作曲家)が問題ないかどうかを常に確認することをお勧めします。
また:
parameters.yml
ファイルを更新するときはいつでも(prodサーバーにもあるはずの構成を使用して)、ファイルparameters.yml.dist
も更新する必要があります。
そのため、展開プロセスの負担が大幅に軽減されます。