繁体   English   中英

配置变量之间的冲突

[英]Conflict between config variables

我在我的服务器中有五个即时的laravel与不同的nginx配置工作正常

我还使用redis队列发送消息,并在生产中使用php artisan config:cache缓存env变量config:cache和我使用config('app.url')而不是env(app.url)

但是,当我想从project1发送带队列的消息时,在消息中显示来自项目4的一些变量,当我运行php artisan config:clear工作正常

但我不想直接使用.env变量我想在生产环境中使用带有缓存配置的变量

我也使用下面的命令,但不起作用:

 php artisan cache:clear
 php artisan route:clear
 php artisan queue:restart
 composer dump-autoload
 composer dump-autoload -o
 php artisan optimize

这是我的.env文件:

  APP_ENV=produnction
  APP_DEBUG=true

  APP_URL=http://name.com/api/v1.0

  APP_DOMAIN=project1
  APP_NAME_FA=project1
  APP_NAME_EN=project1

我该如何解决?

是的,您必须更改,您可以使用一个Laravel应用程序托管多个域,但.env将是每个应用程序一个,这就是为什么您获得相同的值。

您可以尝试使用自己的配置为每个项目创建多个Laravel应用程序.env

要么

使用一个Laravel应用程序处理多个域,并在一个.env为每个项目使用不同的变量名称。

另一种解决方法是在config目录下创建一个自定义配置文件,并在那里放置你想要的任何内容并使用config helper。

-update

当你使用env和使用config时要小心.env env()会首先查看.env ,config会查看config目录。

恩。 env('PREFIX_APP_URL')将查看.envPREFIX_APP_URL

config('prefix.app.url')将查看配置目录文件中的数组prefix文件的嵌套数组

return array(
 'app'=>array(
    'url'=>'...value..'
 )
)
php artisan config:clear

php artisan cache:clear 

php artisan config:cache

如果在部署期间使用config:cache命令,则必须确保仅从配置文件中调用env函数,而不是从应用程序中的任何其他位置调用。

如果从应用程序中调用env,强烈建议您在配置文件中添加正确的配置值,并从该位置调用env,允许您将env调用转换为config调用。

通过https://github.com/laravel/framework/issues/21727阅读整个主题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM