5

我正在尝试在生产环境中运行 Symfony4 应用程序,但出现以下错误:

Uncaught TypeError: Return value of Symfony\\Component\\Dotenv\\Dotenv::populate() 
must be an instance of Symfony\\Component\\Dotenv\\void, 
none returned in /var/www/html/vendor/symfony/dotenv/Dotenv.php:95
Stack trace:
#0 /var/www/html/vendor/symfony/dotenv/Dotenv.php(57): 
    Symfony\\Component\\Dotenv\\Dotenv->populate(Array)
#1 /var/www/html/public/index.php(12): 
    Symfony\\Component\\Dotenv\\Dotenv->load('/var/www/html/s...')
#2 {main}
    thrown in /var/www/html/vendor/symfony/dotenv/Dotenv.php on line 95

在本地应用程序运行良好。一旦它投入生产,它就会中断。

知道为什么会发生这种情况吗?

4

2 回答 2

7

生产运行的是 PHP5.x 还是 7.0?void 返回类型仅在 PHP 7.1 中可用/保留,因此它会认为它可能是同一命名空间中的一个类——它也不存在。Symfony 4 需要 PHP 7.1.3

于 2017-11-25T16:58:58.163 回答
0

当我尝试在 Ubuntu 16.04 服务器上运行 Symfony 4 时,我也遇到了同样的问题。在我的情况下,从 v7.0 升级到 v7.2 后,我忘记在 Apache 服务器中启用新的 php 版本。我希望以下详细信息可以帮助您检查生产服务器。

运行以下命令以查看哪个 php 版本处于活动状态。
ls /etc/apache2/mods-enabled/php*

禁用以前安装的 php 版本。
sudo a2dismod php7.0

启用新安装的 php 版本。
sudo a2enmod php7.2

不要忘记重新启动 Apache 服务器。

于 2019-06-30T10:09:24.277 回答