0

appfogサービスでcakephpデータベース接続を構成するのに問題があります。

AppFogは、このようなVCAP_SERVICES変数によるJSONデータベース構成を提供します

 {
    "mysql-5.1" =     (
                {
            credentials =             {
                host = "ap01-user01.c0ye1hvnkw6z.ap-southeast-1.rds.amazonaws.com";
                hostname = "ap01-user01.c0ye1hvnkw6z.ap-southeast-1.rds.amazonaws.com";
                name = ?????????????;
                password = ????;
                port = 3306;
                user = ?????;
                username = ???????????;
            };
            label = "mysql-5.1";
            name = "???????-mysql-56200";
            plan = free;
            tags =             (
                mysql,
                "mysql-5.1",
                relational
            );
        }
    ); }

このようなcakephpデータベース設定ファイルで

public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => $mysql_config["hostname"],
        'login' => $mysql_config["username"],
        'password' => $mysql_config["password"],
        'database' => $mysql_config["name"],
        'prefix' => '',
        //'encoding' => 'utf8',
    );

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

jsonを配列に解析する必要があります(アプリにバインドされたmysql dbが1つしかない場合、さらにある場合は、2番目にバインドされたmysqlサービスを反映するために「0」を別の数値に変更する必要があります)。

$services = getenv("VCAP_SERVICES");
$services_json = json_decode($services,true);
$mysql_config = $services_json["mysql-5.1"][0]["credentials"];

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => $mysql_config["hostname"],
    'login' => $mysql_config["user"],
    'password' => $mysql_config["password"],
    'database' => $mysql_config["name"],
    'port' => $mysql_config["port"],
    'prefix' => '',
    //'encoding' => 'utf8',
);

上記は「username」を「user」に変更し、基本的にappfogがWordpressで行うことの前提に従います:https ://github.com/appfog/af-php-wordpress/blob/master/wp-config.php

于 2012-10-10T22:44:44.127 に答える