Мне нужно настроить среду разработки и производства с использованием поддоменов с Laravel и Apache. Например:
dev.mydomain.com
app.mydomain.com
Где приложение — это производство, а dev — разработка. Внутри моего / var / www у меня есть папки dev.mydomain.com и app.mydomain.com. Внутри каждой из этих папок у меня есть идентичные проекты Laravel (кроме файлов конфигурации, указывающих на разные субдомены и базы данных).
Я хотел разделить места, чтобы иметь возможность тестировать на разных базах данных, а также тестировать новые файлы разработки, прежде чем приступить к работе (практически без простоев). Я могу получить доступ к любому субдомену по одному, временно удалив конфигурацию другого в моих файлах конфигурации Apache, но это громоздко и приводит к простоям обоих приложений.
Мои файлы .htaccess кажутся правильными, потому что я могу просмотреть тестовый URL в обоих поддоменах (используя простые файлы .html). Когда я пытаюсь получить доступ к поддоменам с установленным laravel, я получаю странные результаты, такие как возможность подключения к базе данных dev, находящейся в поддомене приложения, ИЛИ возможность войти в среду приложения, но не удается войти в среду разработки или наоборот.
Я искал стекпотока и поиска в Google, чтобы попытаться найти решение, но пока ничего не найдено. Я в основном нашел учебники о том, как настроить
detectEnvironment
с Laravel, как в ссылке здесь:
http://chrishayes.ca/blog/code/laravel-4-setting-utilizing-environments-environment-configuration
У кого-нибудь есть решение для этого или лучший способ работы со средой разработки / тестирования в Laravel наряду с производственной средой?
В bootstrap/start.php
что вы можете сделать, это установить среду в зависимости от используемого домена:
$env = $app->detectEnvironment(function(){
if (!isset($_SERVER['HTTP_HOST']) ||
$_SERVER['HTTP_HOST'] =='dev.mydomain.com') {
return 'dev';
}
return 'production';
});
Единственная проблема здесь с artisan
Я верю — вы сможете использовать его только для одной среды. В приведенном выше коде ремесленник будет использоваться для среды разработки (потому что, если вы используете ремесленника $_SERVER['HTTP_HOST']
не указан и в вышеприведенном коде для этого dev
развитие выбирается.
Других решений пока нет …