coding.net在很久之前就推出了演示平台功能,每个用户有512M的免费内存资源,可以搭建常用的应用平台环境。php官方给的例子是知名开源博客wordpress,但其中关于wp-conf.php数据库连接信息配置我不太赞同,采取了写死变量值的方法。
其实coding.net的演示平台是基于Cloud Foundry开源技术搭建的,那理应遵循一般规律。其中VCAP_SERVICES环境变量就存储了服务的相关信息。
下面就用基于php语言的wordpress说明下问题。
新建一个文件info.php,录入以下代码
在提交到演示平台运行后,访问该页面,你会发现在PHP Variables里存在一个_ENV["VCAP_SERVICES"]环境变量,其值是一个json对象,其中包含了我们需要的信息。
假设我们添加的mysql服务名就叫“mysql”,那么可以改写wp-conf.php数据库连接信息相关代码片段如下
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //$vcap = getenv("VCAP_SERVICES");$data = json_decode($vcap, true);$creds = $data['mysql'][0]['credentials'];/** WordPress数据库的名称 *///define('DB_NAME', 'database_name_here');define('DB_NAME', $creds['name']);/** MySQL数据库用户名 *///define('DB_USER', 'username_here');define('DB_USER', $creds['username']);/** MySQL数据库密码 *///define('DB_PASSWORD', 'password_here');define('DB_PASSWORD', $creds['password']);/** MySQL主机 *///define('DB_HOST', 'localhost');define('DB_HOST', $creds['hostname']);
这样后续更新源码后就不用修改连接信息了,也不用担心数据库相关信息泄露了。