Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接数据库时出错:在wp-config.php中使用环境变量_Php_Wordpress_Environment Variables - Fatal编程技术网

连接数据库时出错:在wp-config.php中使用环境变量

连接数据库时出错:在wp-config.php中使用环境变量,php,wordpress,environment-variables,Php,Wordpress,Environment Variables,我想配置一个wordpress站点,我的wp配置应该从环境变量中获取数据库值。我已经设置了环境变量,但在此期间显示“建立数据库连接时出错” 这是我正在使用的代码 define('DB_NAME', getenv('DB')); define('DB_USER', getenv('us')); define('DB_PASSWORD', getenv('pa')); define('DB_HOST', getenv('end')); 我也试过从终端运行,但错误是一样的。我无法找出导致此问题的原因

我想配置一个wordpress站点,我的wp配置应该从环境变量中获取数据库值。我已经设置了环境变量,但在此期间显示“建立数据库连接时出错”

这是我正在使用的代码

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>

数据库错误
建立数据库连接时出错

是否遗漏了一些内容???

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

像这样试试

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

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

我收到了同样的错误。看起来我的
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') );

您确定环境变量具有正确的值吗?是的,我尝试使用这些值而不是环境变量进行连接,并且效果良好。但是使用Env变量运行会导致连接错误。是否确实设置了Env变量?尝试回显它们并进行检查,在这种情况下应该可以工作,此错误仅在连接字符串错误时显示。请仔细检查您是否已更正所有信息。现在获取此错误-是否有人诊断出此重影问题?您是否创建了.htaccess?您是否解决过此问题?