所以我在私人服务器上创建了一个www站点。它基本上是一个PHP + javascript页面。现在我需要将它移动到BlueMix。唯一的问题是,当我在私人服务器上使用MySQL数据库时,我需要在BlueMix上使用SQL Database-s2和所有(我的php页面和数据库)。
麦克
答案 0 :(得分:2)
您必须从VCAP_SERVICES \服务凭据解析数据库信息。
如果您的数据库服务是" SQL数据库"您可以使用以下示例代码连接到SQLDB:
//parse VCAP_SERVICES Environment variable
$vcap_services = $_ENV["VCAP_SERVICES"];
$services_json = json_decode($vcap_services,true);
$sqldb = $services_json["sqldb"];
if (empty($sqldb)) {
echo "No sqldb service instance is bound. Please bind a sqldb service instance";
return;
}
//Get Credentials object (db,host,port,username,password)
$sqldb_config = $services_json["sqldb"][0]["credentials"];
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=".
$sqldb_config["db"].
";HOSTNAME=".
$sqldb_config["host"].
";PORT=".
$sqldb_config["port"].
";PROTOCOL=TCPIP;UID=".
$sqldb_config["username"].
";PWD=".
$sqldb_config["password"].
";";
$conn = db2_connect($conn_string, '', ''); //db connection
自动从VCAP_SERVICES检索信息。 该应用程序阅读环境。变量并自动检索用户名,主机,数据库密码字段。
但您可以手动设置数据库,主机,端口,用户名和密码 服务的服务凭据:
如何检索凭据信息:
cf env your_app_name
在我们使用DB2模块的代码中:在使用SQLDB和PHP时使用以下buildpack https://github.com/ibmdb/db2heroku-buildpack-php。它将安装' ibm_db2' php模块供您使用。
您可以在Bluemix上推送应用程序时设置buildpack:
cf push <your_app_name> -b https://github.com/ibmdb/db2heroku-buildpack-php
答案 1 :(得分:2)
您可以使用PHP buildpack在Bluemix上部署应用程序。创建SQL数据库实例并将其绑定到Bluemix上的PHP应用程序后,要连接到Bluemix中的SQLDB服务,您可以将db2_connect与从VCAP_SERVICES环境变量中检索到的凭据一起使用。我不了解您的业务需求,但是如果您想要在整个环境中保持一致性并且不想迁移到另一个RDBMS,您可以尝试ClearDB,这是一个可靠的,容错的,为MySQL驱动的应用程序提供地理分布式数据库即服务。