我在使用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',
);如何解决这个问题?
发布于 2012-10-11 06:44:44
您需要将json解析为一个数组(如果您只有一个mysql数据库绑定到应用程序,如果您有更多的数据库,则需要将"0“更改为另一个数字,以反映第二个绑定的mysql服务):
$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',
);上面将“用户名”改为“用户”,基本上遵循了appfog对Wordpress所做的事情的前提:https://github.com/appfog/af-php-wordpress/blob/master/wp-config.php
https://stackoverflow.com/questions/12712258
复制相似问题