使用vlucas / phpdotenv的Wordpress死亡白屏,尝试加载.env变量

我已经在带有RDS的EC2(Amazon 2 Linux)上设置了一个Wordpress网站,并且运行良好。我现在正尝试使用https://github.com/vlucas/phpdotenv从.env文件加载环境变量。

  1. wp-config.php位于/ var / www(位于html根目录的上一级)
  2. 我在/ var / www /中运行了composer require vlucas/phpdotenv,现在有了/ var / www / vendor,作曲家.json和.lock文件。

composer.json:

{
    "require": {
        "vlucas/phpdotenv": "^4.1"
    }
}

我的.env文件如下(已编辑的值):

DB_NAME=DBNAME
DB_USER=username
DB_PASS=PASSWORD
DB_HOST=HOSTNAME

我在顶部的wp-config.php中添加了以下内容,但随后却出现了可怕的Wordpress白色死亡屏幕。

<?php
require_once(__DIR__ . '/vendor/autoload.php');
(new \Dotenv\Dotenv(__DIR__))->load();

我已经如下添加了我的环境变量,但是即使我恢复为手动输入,上面的代码也会显示白屏。

/** The name of the database for WordPress */
define( 'DB_NAME',getenv('DB_NAME'));

/** MySQL database username */
define( 'DB_USER',getenv('DB_USER'));

/** MySQL database password */
define( 'DB_PASSWORD',getenv('DB_PASS'));

/** MySQL hostname */
define( 'DB_HOST',getenv('DB_HOST'));

我在做什么错了?

byl8781143 回答:使用vlucas / phpdotenv的Wordpress死亡白屏,尝试加载.env变量

尽管在过去的24小时里拔了头发,但我还是设法修复了它。

if(file_exists(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
}
if(file_exists(dirname(__DIR__) . '/vendor/autoload.php')) {
require_once dirname(__DIR__) . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
}

搜索后,我发现使用IF语句检查文件和目录是否已解决。我的作曲家和.env都位于网络根目录(/ var / www / html /)的上一级,因此我不需要进行更改。

我也用他的GitHub页面上的vlucas的代码示例加载了.env

本文链接:https://www.f2er.com/2670130.html

大家都在问