0

我从创建我们网站的机构那里获得了一个docker-compose.yml文件,以便在我接管管理我们的 Wordpress 电子商务之后构建我们现有网站的本地开发副本。

继续运行docker-compose up,网站和数据库容器都在没有任何警告的情况下启动(除了 apache2 没有设置服务器名称),当我在浏览器中转到localhost时,我可以与服务器实例通信,但是我收到以下消息:

致命错误:未捕获的 TypeError:传递给 Dotenv\Dotenv::__construct() 的参数 1 必须是 Dotenv\Loader 的实例,给定字符串,在第 8 行的 /var/www/config/application.php 中调用并在 /var 中定义/vendor/vlucas/phpdotenv/src/Dotenv.php:31 堆栈跟踪:#0 /var/www/config/application.php(8):Dotenv\Dotenv->__construct('/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它显示它们都已安装

预期结果:我应该在localhost上查看我们的 Wordpress 的本地副本,以便我可以开发并将更改推送到 docker hub。

实际结果:从 docker-compose.yml 构建时没有 CLI 错误,但是当我访问时,localhost我收到上面显示的与 dotenv 相关的错误消息。

这真的让我很难过——如果有人能对这种情况有所了解,我将不胜感激!

4

0 回答 0