我的服务器中有五个laravel瞬间,不同的nginx配置正常工作
此外,我使用redis队列发送消息,并在生产环境中使用php artisan config:cache
缓存env变量,并使用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
我该如何解决?
答案 0 :(得分:0)
是的,您必须更改,您可以使用一个Laravel应用程序托管多个域,但.env
将是每个应用程序一个,这就是您获得相同值的原因。
您可以尝试使用自己的配置.env
或
使用一个Laravel应用程序处理多个域,并在一个.env
中为每个项目使用不同的变量名。
解决此问题的另一种方法是在config目录下创建自定义配置文件,并在其中放置您想要的任何内容并使用config
帮助程序。
-update
使用env
时以及使用config
时要小心。env()
会先查看.env
,配置会查看配置目录。
离。 env('PREFIX_APP_URL')
会针对.env
PREFIX_APP_URL
而config('prefix.app.url')
将查看配置目录文件中的数组prefix
文件的嵌套数组
return array(
'app'=>array(
'url'=>'...value..'
)
)
答案 1 :(得分:0)
php artisan config:clear
php artisan cache:clear
php artisan config:cache
如果在部署过程中使用config:cache命令,则必须确保只从配置文件中调用env函数,而不从应用程序中的其他任何地方调用。
如果要从应用程序内部调用env,则强烈建议您向配置文件中添加适当的配置值,然后从该位置调用env,从而使您可以将env调用转换为配置调用。
读取整个线程