连接数据库时出错:将环境变量用于wp-config.php

时间:2015-02-18 12:01:45

标签: php wordpress environment-variables

我想配置一个wordpress站点,我的wp-config应该从环境变量获取数据库值。我已经设置了我的环境变量,但在它显示"错误建立数据库连接"。

这是我正在使用的代码

define('DB_NAME', getenv('DB'));
define('DB_USER', getenv('us'));
define('DB_PASSWORD', getenv('pa'));
define('DB_HOST', getenv('end'));

我也尝试过从终端运行,但错误是一样的。我无法弄清楚导致这个问题的原因。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Database Error</title>

</head>
<body>
    <h1>Error establishing a database connection</h1>
</body>
</html>

他们的东西是否被遗漏?

3 个答案:

答案 0 :(得分:1)

您为数据库用户名,密码和主机定义相同的DB_NAME常量更改常量

试试这个

define('DB_NAME', getenv('DB'));
define('DB_USER', getenv('us'));
define('DB_PASSWORD', getenv('pa'));
define('DB_HOST', getenv('end'));

答案 1 :(得分:0)

或者您可以创建.htaccess文件 SetEnv DB Abc; 并在php echo DB;

答案 2 :(得分:0)

我收到了同样的错误。好像我的wp-config.php在两个不同的位置被两次叫过。我引用.env文件的方式不正确。

如果您在wp-config.php中执行类似的操作:

$dotenv = Dotenv\Dotenv::create(__DIR__);
if(file_exists(".env")) {
    $dotenv->load();
}

正确方法是通过引用文件前面的正确路径。像这样:

$dotenv = Dotenv\Dotenv::create(__DIR__);
if(file_exists($_SERVER['DOCUMENT_ROOT'] . '/' . '.env')) {
    $dotenv->load();
}

当我这样调用环境变量时,这最终解决了我的问题:

define( 'DB_HOST', getenv('DB_HOST') );