Php 配置变量之间的冲突

Php 配置变量之间的冲突,php,laravel,redis,laravel-5.2,queue,Php,Laravel,Redis,Laravel 5.2,Queue,我的服务器中有五个即时的laravel,使用不同的nginx配置工作正常 我还使用redis队列发送消息,在生产环境中,我使用php artisanconfig:cache缓存了env变量,并使用config('app.url')而不是env(app.url) 但当我想从project1发送带有队列的消息时,在消息中会显示来自Project4的一些变量,并且当我运行php artisan config:clear时效果良好 但我不想直接使用.env变量,我想在带有缓存配置的生产环境中使用变量 我

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

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

但当我想从project1发送带有队列的消息时,在消息中会显示来自Project4的一些变量,并且当我运行
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

-更新

使用
env
和使用
config
时要小心
env()
将首先查看
.env
,config将查看config目录

例如,
env('PREFIX\u APP\u URL')
将查看
PREFIX\u APP\u URL的
.env

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

return array(
 'app'=>array(
    'url'=>'...value..'
 )
)

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

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

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

解决此问题的另一种方法是在config目录下创建一个自定义配置文件,并将所需的内容放在其中,然后使用
config
helper

-更新

使用
env
和使用
config
时要小心
env()
将首先查看
.env
,config将查看config目录

例如,
env('PREFIX\u APP\u URL')
将查看
PREFIX\u APP\u URL的
.env

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

return array(
 'app'=>array(
    'url'=>'...value..'
 )
)
如果在部署期间使用config:cache命令,则必须确保仅从配置文件中调用env函数,而不是从应用程序中的任何其他位置调用

如果您是从应用程序中调用env,强烈建议您向配置文件中添加适当的配置值,并从该位置调用env,从而将env调用转换为config调用

通读全文

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

如果您是从应用程序中调用env,强烈建议您向配置文件中添加适当的配置值,并从该位置调用env,从而将env调用转换为config调用


阅读整个线程

你能发布
.env
文件吗?您可以为变量使用不同的名称,
PROJECT1\u URL
等。如果不更改变量,就没有办法了?次要修复是
production
而不是
production
我可以为变量添加前缀吗?我的意思是在项目中仍然使用
config('app.url')
,但当我添加前缀时,我使用
config(prefix.app.url)
。。你认为这能解决问题吗؟你能发布
.env
文件吗?您可以为变量使用不同的名称,
PROJECT1\u URL
等。如果不更改变量,就没有办法了?次要修复是
production
而不是
production
我可以为变量添加前缀吗?我的意思是在项目中仍然使用
config('app.url')
,但当我添加前缀时,我使用
config(prefix.app.url)
。。你认为这能解决问题吗?我能给变量添加前缀吗?我的意思是在项目中仍然使用
config('app.url')
,但当我添加前缀时,我使用
config(prefix.app.url)
。。你认为这能解决问题吗?我能给变量添加前缀吗?我的意思是在项目中仍然使用
config('app.url')
,但当我添加前缀时,我使用
config(prefix.app.url)
。。你认为这能解决问题吗