私はOpenshiftでPHPアプリケーションを作成しました。その後、私のアプリにMySQLデータベースを追加しました。その後、私はenv
コマンドでSSHシェルでデータベース関連の変数を見ることができます。Openshift:データベース環境変数がPHPで設定されていません
しかし、私は環境変数を使用してdb接続をセットアップしようとしたとき、私のPHPコードにそれらを再実行しません。例として:アプリケーション名が正しくしかしOPENSHIFT_MYSQL_DB_HOST
がnullで、ホスト情報が入手できない
<?php
echo('App: '.$_ENV["OPENSHIFT_APP_NAME"].'<br/>');
echo('Host: '.$_ENV["OPENSHIFT_MYSQL_DB_HOST"]);
OPENSHIFT_APP_NAME
戻ります。
また、コンソールでアプリケーションを再起動しました。 私はWinScpを使用してアプリケーションを直接アップロードしましたが、PHPアプリケーションのデプロイメントに多かれ少なかれ必要があるかどうか分かりません(require
のようなもの)?
アップデート:私はphpMyAdminのコードをチェックすると
、私はそれがこのような構文を持つファイル 'conf.d/passenv.conf' を持って見ました:
PassEnv OPENSHIFT_MYSQL_DB_PORT
は、それがために助けることがマイ私の問題を解決する。
'rhc env-list'(すべての環境変数を表示) ' rhc env-set {VARIABLE1} = {VALUE1} {VARIABLE2} = {VALUE2} ' ...](https://blog.openshift.com/taking-advantage-of-environment-variables-in-openshift-php-apps/) 'define( 'DB_HOST'、getenv( 'OPENSHIFT_MYSQL_DB_HOST'));' – zipzit
@zipzit新しいカートリッジを追加すると既に定義されていると思われます。これらはサーバー構成の変更である可能性があるため、手動で定義するべきではありません。 – VSB
もしそれがあまりにも微妙であれば申し訳ありません。 RHCを開き、 'rhc env-list'と打ち込んで、結果を確認してください。上記のenv-listから観測された環境変数に応じて 'echo(getenv( 'OPENSHIFT_MYSQL_DB_HOST'));'を実行し、 'tail-all'コマンドを使用してPHPコードの結果を確認しますファイル)。注意: 'getenv..'は' $ _ENV'ではありません。(PHPでもうまく動作するはずですが) – zipzit