Laravel 4.2 с использованием Apache Dev и производственных поддоменов
Мне нужно настроить среду разработки и производства с использованием поддоменов с Laravel и Apache. Например:
dev.mydomain.com
app.mydomain.com
Где приложение - производство, а разработка - разработка. Внутри моего / var / www у меня есть папки dev.mydomain.com и app.mydomain.com. Внутри каждой из этих папок у меня есть идентичные проекты Laravel (кроме файлов конфигурации, указывающих на разные субдомены и базы данных).
Я хотел разделить места, чтобы иметь возможность тестировать на разных базах данных, а также тестировать новые файлы разработки, прежде чем приступить к работе (практически без простоев). Я могу получить доступ к любому субдомену по одному, временно удалив конфигурацию другого в моих файлах конфигурации Apache, но это громоздко и приводит к простоям обоих приложений.
Мои файлы.htaccess кажутся правильными, потому что я могу просмотреть тестовый URL в обоих поддоменах (используя простые файлы.html). Когда я пытаюсь получить доступ к поддоменам с установленным laravel, я получаю странные результаты, такие как возможность подключения к базе данных dev, находящейся в поддомене приложения, ИЛИ возможность войти в среду приложения, но не удается войти в среду dev или наоборот.
Я искал стекпотока и поиска в Google, чтобы попытаться найти решение, но пока ничего не найдено. Я в основном нашел учебники о том, как настроить
detectEnvironment
с Laravel, как в ссылке здесь:
http://chrishayes.ca/blog/code/laravel-4-setting-utilizing-environments-environment-configuration
У кого-нибудь есть решение для этого или лучший способ работы со средой разработки / тестирования в Laravel наряду с производственной средой?
1 ответ
В 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
развитие выбирается.