【发布时间】:2020-05-31 18:55:37
【问题描述】:
我尝试使用以下教程部署 Symfony 应用程序:https://medium.com/@runawaycoin/deploying-symfony-4-application-to-shared-hosting-with-just-ftp-access-e65d2c5e0e3d
在尝试加载网站时,我收到了 500 内部服务器错误。根据教程,我查看了托管错误日志并看到了很多关于 DotEnv 的内容。这是输出的第一部分:
PHP 致命错误:未捕获 Symfony\Component\Dotenv\Exception\PathException:无法读取 “/var/www/vhosts/137/332002/webspace/httpdocs/symfony_temp/.env” 环境文件。在 /var/www/vhosts/137/332002/webspace/httpdocs/symfony_temp/vendor/symfony/dotenv/Dotenv.php:484
本教程告诉我将环境变量存储在其他地方,例如 index.php。但是查看代码我看到bootstrap.php 立即调用DotEnv 并尝试从那里获取数据,我认为这最终会导致错误。
如何禁用 DotEnv,使 Symfony 不使用它,并且我可以简单地从其他地方获取我的 env 变量?它托管在属于客户的托管环境中,我认为 .htaccess 不允许访问 DotEnv,在这种情况下我无法更改它,因为我无权编辑该 .htaccess 文件甚至打开它。
【问题讨论】:
-
不熟悉本教程,但 DotEnv 通常只用于开发环境,而不是生产环境。至少它应该检查 $_SERVER['APP_ENV'] 的存在。您也可以尝试“composer dump-env prod”来生成 .env.local.php 文件。