2

MySQLとPHPMyAdminカートリッジをopenshiftphpアプリに追加しました。mysqlカートリッジが追加された後、次のようなページが表示されました。

Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/

しかし、それが何を意味するのか私にはわかりません。

PHPMyAdminを介してmysqlデータベースにアクセスすると、127.8.111.1がdbホストとして表示されるため、symfony 2アプリ(parameters.yml)を構成しました。

parameters:    
    database_driver:   pdo_mysql
    database_host:     127.8.111.1
    database_port:     3306
    database_name:     <some_database>
    database_user:     admin
    database_password: <some_password>

これで、自分のWebページにアクセスすると、エラーがスローされます。これは、mysql接続に関連していると思います。誰かが私に上記を行う適切な方法を教えてもらえますか?

編集:mysql接続は正常に機能しているようですが、どういうわけか

Error 101 (net::ERR_CONNECTION_RESET): Unknown error 

スローされます。

4

2 に答える 2

0
Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/

OpenShift は、データベースのホストおよびポート情報を含む環境変数をアプリケーションに公開します。値をハードコーディングするのではなく、構成でこれらの環境変数を参照する必要があります。私は Symfony の専門家ではありませんが、アプリでこの情報を使用するには、次のことを行う必要があるように思われます。

アプリケーションの起動前フックを作成し、変数を Symfony の予期される形式でエクスポートします。アプリケーションの git リポジトリーの .openshift/action_hooks/pre_start_php-5.3 ファイルに以下を追加します。

export SYMFONY__DATABASE__HOST=$OPENSHIFT_MYSQL_DB_HOST
export SYMFONY__DATABASE__PORT=$OPENSHIFT_MYSQL_DB_PORT

Symphony はこのパターンを使用して環境内の外部構成を識別し、この構成を YAML 構成で使用できるようにします。

parameters:    
    database_driver:   pdo_mysql
    database_host:     "%database.host%"
    database_port:     "%database.port%"

編集:

YAML 構成で使用するためにこの情報を公開する別のオプションは、app/config/config.yml に php ファイルをインポートすることです。

imports:
    - { resource: parameters.php }

app/config/parameters.php で:

$container->setParameter('database.host', getEnv("OPENSHIFT_MYSQL_DB_HOST"));
$container->setParameter('database.port', getEnv("OPENSHIFT_MYSQL_DB_PORT"));
于 2012-12-14T22:25:19.913 に答える