getenv('SYMFONY_ENV') 在作曲家安装的 app/console 中为空,但在其他地方没问题
getenv('SYMFONY_ENV') is empty in app/console from composer install, but OK elsewhere
要在生产环境中部署我的 Symfony 应用程序,我 运行 在 bash 脚本中执行以下命令:
php composer.phar install --no-dev --optimize-autoloader
我收到以下错误:
Script
Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache
handling the post-install-cmd event terminated with an exception
An error occurred when executing the "'cache:clear --no-warmup'" command.
这是因为app/consolereturns中的getenv('SYMFONY_ENV')是一个空值,同时执行来自composer.jsonpost-install-的命令命令。因此,$env 值未设置为 prod,而是设置为 dev(默认值)。
但是,SYMFONY_ENV 值是可以的。
在终端中,如果我 运行:
printenv SYMFONY_ENV
它打印 prod
如果我运行:
php -r "print_r(getenv('SYMFONY_ENV'));"
它打印 prod
我遗漏了什么或做错了什么?
我才发现我是运行宁
sudo php composer.phar install --no-dev --optimize-autoloader
而不是
php composer.phar install --no-dev --optimize-autoloader
就我而言 (ubuntu 14.04),我在 /etc/environment 中定义了 SYMFONY_ENV,我认为所有用户都可以访问它,但 sudo 并非如此。我在没有 sudo 的情况下 运行 解决了我的问题(因为它没有理由)。
另一种解决方案可能是 运行 sudo -E php ...
以按照此处的建议保留用户环境:https://askubuntu.com/questions/161924/how-do-i-set-persistent-environment-variables-for-root
要在生产环境中部署我的 Symfony 应用程序,我 运行 在 bash 脚本中执行以下命令:
php composer.phar install --no-dev --optimize-autoloader
我收到以下错误:
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception
An error occurred when executing the "'cache:clear --no-warmup'" command.
这是因为app/consolereturns中的getenv('SYMFONY_ENV')是一个空值,同时执行来自composer.jsonpost-install-的命令命令。因此,$env 值未设置为 prod,而是设置为 dev(默认值)。
但是,SYMFONY_ENV 值是可以的。
在终端中,如果我 运行:
printenv SYMFONY_ENV
它打印 prod
如果我运行:
php -r "print_r(getenv('SYMFONY_ENV'));"
它打印 prod
我遗漏了什么或做错了什么?
我才发现我是运行宁
sudo php composer.phar install --no-dev --optimize-autoloader
而不是
php composer.phar install --no-dev --optimize-autoloader
就我而言 (ubuntu 14.04),我在 /etc/environment 中定义了 SYMFONY_ENV,我认为所有用户都可以访问它,但 sudo 并非如此。我在没有 sudo 的情况下 运行 解决了我的问题(因为它没有理由)。
另一种解决方案可能是 运行 sudo -E php ...
以按照此处的建议保留用户环境:https://askubuntu.com/questions/161924/how-do-i-set-persistent-environment-variables-for-root