2015-02-25 2 views
19

Когда я запускаю $ php artisan env Я получаю;Laravel 5 Как перейти из режима производства

Current application environment: production 

Как я могу изменить это на разработку или что-то подобное? Поэтому я могу видеть ошибки. Я прочитал a lot of the documentation, но новичку это совсем не легко понять. На самом деле у меня нет конфигурации сервера.

Уверен, что есть «умный» способ сделать это, но все, что меня интересует, на данный момент вручную изменяет среду. Как мне это сделать?

ответ

31

Laravel 5 получает переменные связанные с окружающей средой переменные из файла .env, расположенного в корне вашего проекта. Вам просто нужно установить APP_ENV все, что вы хотите, например:

APP_ENV=development 

Это используется для определения текущего состояния происходит. Если вы хотите отобразить ошибки, вам необходимо включить режим отладки в том же файл:

APP_DEBUG=true 

Роль файла .env, чтобы позволить вам иметь различные настройки в зависимости от какой машины вы работаете приложение , Таким образом, на вашем производственном сервере параметры файла .env будут отличаться от вашей локальной среды разработки.

+0

Итак, у каждого сервера/среды есть собственный файл .env? Это правильно? – mikelovelyuk

+6

У вас есть один файл '.env', но содержимое может отличаться на каждом компьютере, на котором вы запускаете приложение. Например, на вашем локальном компьютере у вас будут «APP_ENV = development» и «APP_DEBUG = true», но на вашем рабочем сервере значения будут «APP_ENV = production» и «APP_DEBUG = false». – Bogdan

+0

Итак, каждый сервер/среда имеет собственный файл '.env'. – Bogdan

11

Laravel 5 использует файл .env для настройки вашего приложения. .env не должен быть зафиксирован в вашем репозитории, например, github или bitbucket. В локальной среде ваш .env будет выглядеть следующим образом:

# .env 
APP_ENV=local 

для сервера, вы могли бы иметь следующий конфиг:

# .env 
APP_ENV=production 
-4

В Laravel среды по умолчанию всегда производства.

Что вам нужно сделать, это указать правильное имя хоста в bootstrap/start.php для ваших окружающих сред например .:

/* 
|-------------------------------------------------------------------------- 
| Detect The Application Environment 
|-------------------------------------------------------------------------- 
| 
| Laravel takes a dead simple approach to your application environments 
| so you can just specify a machine name for the host that matches a 
| given environment, then we will automatically detect it for you. 
| 
*/ 

$env = $app->detectEnvironment(array(
    'local' => array('homestead'), 
    'profile_1' => array('hostname_for_profile_1') 
)); 
+3

Вопрос для Laravel 5. Ваше решение для Laravel 4. В L5 больше нет файла 'bootstrap/start.php'. – Bogdan

+1

Спасибо за ваш комментарий. Я этого не понимал. –

3

Что вы могли бы также взглянуть на это обнаженный метод Application->loadEnvironmentFrom($file)

я нуждался в одно приложение для запуска на нескольких субдоменах. Таким образом, в bootstrap/app.php я добавил что-то вроде:

$envFile = '.env'; 
// change $envFile conditionally here 
$app->loadEnvironmentFrom($envFile); 
5

Не забудьте запустить команду php artisan config:clear после того, как вы внесли изменения в файл .env. Сделайте это снова php artisan env, который вернет правильную версию.

+0

Это спасло мои дни! Я не мог понять, что случилось. Разрешает все, но потом я видел этот комментарий. Благодаря!! – tprj29

+0

Сохранял мой день тоже. Спасибо, Серджио. – kR105

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