Wordpress белый экран смерти, используя vlucas / phpdotenv, пытаясь загрузить переменные .env - PullRequest
0 голосов
/ 10 марта 2020

Я установил сайт Wordpress на EC2 (Amazon 2 Linux) с RDS, и он работает нормально. Сейчас я пытаюсь загрузить переменные окружения из файла .env, используя https://github.com/vlucas/phpdotenv.

  1. wp-config. php находится в / var / www (на один уровень вверх из каталога root html)
  2. Я запустил composer require vlucas/phpdotenv в / var / www /, и теперь у меня есть / var / www/vendor, composer. json и .lock файлы.

composer. json:

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

Мой файл .env выглядит следующим образом (значения отредактированы):

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

I я добавил следующее в 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'));

Что я делаю не так?

1 Ответ

1 голос
/ 10 марта 2020

Мне удалось это исправить, несмотря на то, что я выдернул свои волосы за последние 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 для проверки, существует ли файл и каталог, уже исправлено Это. И мои composer, и .env живут на один уровень выше веба root (/ var / www/html/), поэтому мне не нужно было это менять.

Также я загрузил .env с помощью Пример кода, который vlucas имеет на своей странице GitHub.

...