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 развитие выбирается.

Другие вопросы по тегам