PHP的数据库环境变量似乎调用失败

Issue #112 resolved
quasimo created an issue

昨天发现的问题:

屏幕快照 2015-04-07 下午5.39.59.png

以前是可以的,但是改用具体的值(右边)之后,就正常了:

屏幕快照 2015-04-07 下午5.43.58.png

但是昨天是用我修改版(for Chinese users)的一个新的wordpress,今天用以前我成功deploy的一个wordpress放上去,还是出现数据库问题:

http://wp2-cnpaas1.app.cnpaas.io

Comments (6)

  1. quasimo reporter

    我已经找到问题所在的!

    修改成这样:

    define('DB_NAME', getenv('OPENSHIFT_APP_NAME'));
    
    define('DB_USER', getenv('OPENSHIFT_MYSQL_DB_USERNAME'));
    define('DB_PASSWORD', getenv('OPENSHIFT_MYSQL_DB_PASSWORD'));
    define('DB_HOST', getenv('OPENSHIFT_MYSQL_DB_HOST'));
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');
    

    关键在于 DB_NAME ,因为 CNPaaS 没有给出 DB_NAME ,而根据openshift的 Database Environment Variables ,我之前将它放照数据库的其他ENV写成了:

    getenv('OPENSHIFT_MYSQL_DB_NAME')
    

    于是出错,但是我发现如果这项和创建应用时填写的name一致的话(主要是我不知道该设为什么的情况下尝试填了应用的name,误打误撞),是可以成功的。

    于是根据openshift的ENV文档,用上面贴的代码可以成功。

  2. Jimmy Chu

    你在一个新应用内用 OPENSHIFT_MYSQL_DB_NAME 还是不行吗?是要昨天修服后建的新应用。

  3. Log in to comment