我是Laravael的新手,我有一个网站,由另一个开发人员开发,我需要将这个网站迁移到另一个服务器。
现在,我正在测试环境。这是我的结构:测试(本地)阶段(用于在线测试的subdomaindomain.com)生产(Domain.com)
$env = $app->detectEnvironment(array(
'testing' => array('localdomain.dev'),
'staging' => array('develop.domain.com'),
'production' => array('www.domain.com')
));我有相应的文件夹,还有覆盖原件的文件。
在这一行之后,我创建了一个echo $env,结果始终是在本地(domain.dev)或在staging (develop.domain.com)上生产
发布于 2015-10-08 22:19:28
从Laravel 4.1开始,环境检测只使用主机名,而不是域。引用the docs
环境检测更新
出于安全原因,URL域可能不再用于检测您的应用程序环境。这些值很容易被欺骗,使得攻击者能够修改请求的环境。您应该将您的环境检测转换为使用机器主机名( Mac、Linux和Windows上的hostname命令)。
您必须使用机器的主机名,而不是使用各种服务器的域名。
如果您不知道计算机的主机名,请尝试执行以下操作:
echo gethostname();然后在您的环境数组中使用它。
发布于 2015-10-09 02:10:41
如果不想使用主机名,还可以在web服务器虚拟主机配置中设置环境变量。对于Apache:SetEnv APP_ENV production
然后:
$env = $app->detectEnvironment(function()
{
return getenv('APP_ENV') ?: 'testing';
});https://stackoverflow.com/questions/33018307
复制相似问题