Symfony 4:Dotenv :: populate返回none

时间:2017-11-25 15:55:21

标签: symfony symfony4

我正在尝试在生产中运行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\nStack trace:\n#0 /var/www/html/vendor/symfony/dotenv/Dotenv.php(57): Symfony\\Component\\Dotenv\\Dotenv->populate(Array)\n#1 /var/www/html/public/index.php(12): Symfony\\Component\\Dotenv\\Dotenv->load('/var/www/html/s...')\n#2 {main}\n  thrown in /var/www/html/vendor/symfony/dotenv/Dotenv.php on line 95

在本地,该应用程序运行正常。一旦它转向生产,它就会破裂。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:5)

生产是运行PHP5.x还是7.0? void return type is only available/reserved from PHP 7.1,因此它会认为它可能是同一命名空间中的一个类 - 它也不存在。 Symfony 4 requires PHP 7.1.3

答案 1 :(得分: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服务器。