2014-10-09 2 views
1

Хорошо, я получаю мульти-среды от Laravel Docs.Laravel 4.1 установка нескольких сред для веб-терминалов

Вот мои настройки:

  • локальная среда
  • промежуточной среды сервера
  • производственный сервер

Локальная среда имеет и имя хоста с сервера производства, очевидно, однако промежуточный сервер является субдоменом на производственном сервере (так dev.myapp.com против myapp.com). Я также использую myapp.dev как мое виртуальное имя хоста локально.

Я установил следующее для переключения enviornments:

$env = $app->detectEnvironment(function(){ 

if(strpos($_SERVER['HTTP_HOST'],'.dev') !== false) || strpos($_SERVER['HTTP_HOST'],'dev.') !== false) { 
    return 'local'; 
} 
return 'production'; 

});

почти работает. Проблема в том, что у меня есть отдельная настройка базы данных для моей среды разработки/развертывания, чтобы мы не показывали или не манипулировали живыми данными в промежуточной среде. Это падает в терминале. Когда я запускаю php artisan env (после того, как предупреждающее сообщение о $_SERVER['HTTP_HOST'] не установлено), оно отображается как производство.

Это означает, что он не будет выполнять миграцию в правильной базе данных через терминал.

Что может быть лучшим способом справиться с этим?

ответ

3
php artisan --env=staging 

является то, что вам нужно, и добавить к isset($_SERVER['HTTP_HOST']) код обнаружения, иначе cli будет жаловаться.

+0

даст это попробовать и вернуться. может потребоваться несколько дней. благодаря – TH1981

-1

Не уверен, что вы пробовали это, но я бы использовал имя хоста вместо домена. На промежуточном сервере с использованием вашего типа CLI hostname он укажет имя хоста вашего сервера.

Вы можете добавить это к начальной загрузки/start.php

$env = $app->detectEnvironment(array(

    'local' => array('homestead'), // Change this to your local machine hostname. 
    'staging' => array('staging_hostame'), // staging server 
    'production' => array('your-production-machine-name'), 

)); 

Позвольте мне теперь, если вам нужна дополнительная помощь на этом :)

+0

спасибо, но мое имя хоста для оцепенения и для производства такое же, как на одном сервере. – TH1981

Смежные вопросы