После использования docker-compose для создания dev-копии сервера / веб-сайта из YML я получаю фатальные ошибки PHP, связанные с dotenv? - PullRequest
0 голосов
/ 19 июня 2019

Мне дали файл docker-compose.yml от агентства, которое создало наш веб-сайт, чтобы создать локальную копию нашего существующего веб-сайта теперь, когда я взял на себя управление нашим Wordpress e-ком.

При запуске docker-compose up и веб-сайт, и контейнеры базы данных запускаются без каких-либо предупреждений (кроме apache2 без заданного имени сервера), и когда я в браузере перехожу на localhost может связаться с экземпляром сервера, однако меня приветствует следующее сообщение:

Неустранимая ошибка: Uncaught TypeError: Аргумент 1, переданный в Dotenv \ Dotenv :: __ construct (), должен быть экземпляром Dotenv \Загрузчик, заданная строка, вызывается в /var/www/config/application.php в строке 8 и определяется в /var/vendor/vlucas/phpdotenv/src/Dotenv.php:31 Трассировка стека: # 0 / var / www / config/application.php(8): Dotenv \ Dotenv -> конструкция __ ('/ var / www') # 1 /var/www/public/wp-config.php(14): require_once ('/ var / www / config... ') # 2 /var/www/public/wp/wp-load.php(42): require_once (' / var / www / public ... ') # 3 / var / www / public / wp / wp-blog-header.php (13): require_once ('/ var / www / public ...') # 4 /var/www/public/index.php(5): require ('/ var / www / public... ') # 5 {main} добавлено в / var / vendor / vlucas / phpdotenv/src/Dotenv.php в строке 31```

Считая, что это проблема с самим файлом .env, я воссоздал его, поскольку он содержит очень мало простых строк (изменил значения дляразделяю здесь, в остальном идентично):

MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=wordpressdb
MYSQL_USER=wordpressuser
MYSQL_PASSWORD=wordpresspassword

Независимо от того, куда я положил этот файл .env, мне кажется, что это приводит к одной и той же фатальной ошибке.

Я думаю, что это может бытьНе удалось правильно установить dotenv, я вернулся к основам и убедился, что в Composer есть все, что нужно.В моем файле composer.json перечислены следующие обязательные зависимости:

    "php": ">=5.5",
    "composer/installers": "^1.2",
    "vlucas/phpdotenv": "^3.4",
    "johnpbloch/wordpress": "^4.9.5",
    "wpackagist-plugin/timber-library": "1.1.*",
    "wpackagist-plugin/woocommerce": "3.4.7",
    "wpackagist-plugin/advanced-custom-fields-table-field": "1.*",
    "wpackagist-plugin/woocommerce-email-test": "^1.8",
    "wpackagist-plugin/woocommerce-pdf-invoices-packing-slips": "^2.0.9",
    "wpackagist-plugin/redirection": "^3.4",
    "wpackagist-plugin/relevanssi": "^4.0",
    "wpackagist-plugin/acf-gravityforms-add-on": "^1.2",
    "wpackagist-plugin/woocommerce-product-price-based-on-countries": "^1.7",
    "wpackagist-plugin/acf-content-analysis-for-yoast-seo": "^2.1",
    "wpackagist-plugin/autoptimize": "^2.3",
    "wpackagist-plugin/w3-total-cache": "^0.9.7",
    "wpackagist-plugin/post-types-order": "1.9.3.9",
    "wpackagist-plugin/amazon-s3-and-cloudfront":"^2.0",
    "phpoption/phpoption": "^1.5",
    "symfony/polyfill-ctype": "^1.11",
    "symfony/dotenv": "^4.3"

Когда я запускаю composer show -i, он показывает, что они все установлены.

Ожидаемые результаты: Мне нужно просмотреть локальную копию нашего Wordpress на localhost , чтобы я мог разработать и затем отправить изменения в концентратор докеров.

Фактические результаты: Нет ошибок CLI при сборке из docker-compose.yml, но при доступе к localhost я получаю сообщение об ошибке, связанной с dotenv, показанное выше.

Это действительно ставит меня в тупик - если кто-нибудь сможет пролить свет на ситуацию, я был бы бесконечно благодарен!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...