Laravel 5 Cum să treci de la modul de producție (Programare, Php, Laravel, Laravel Artisan)

mikelovelyuk a intrebat.

Când execut $ php artisan env Primesc;

Current application environment: production

Cum pot schimba acest lucru în dezvoltare sau ceva similar? Deci, pot vedea erori… Am citit o mulțime de documentație dar nu este deloc ușor de înțeles pentru un începător. Nu am experiență în configurarea serverului, într-adevăr.

Sunt sigur că există o modalitate „inteligentă” de a face acest lucru, dar tot ce mă interesează, deocamdată, este să schimb manual mediul. Cum pot face acest lucru?

5 răspunsuri
Bogdan

Laravel 5 își obține variabilele legate de enviroment din fișierul .env fișier aflat în rădăcina proiectului tău. Trebuie doar să setați APP_ENV la ce vrei tu, de exemplu:

APP_ENV=development

Aceasta este folosită pentru a identifica mediul curent. Dacă doriți să afișați erorile, va trebui să activați modul de depanare în același fișier:

APP_DEBUG=true

Rolul fișierului .env este de a vă permite să aveți setări diferite în funcție de mașina pe care executați aplicația. Astfel, pe serverul de producție, fișierul .env setările din fișier vor fi diferite de cele din mediul de dezvoltare local.

Comentarii

  • Astfel, fiecare server/mediu are propriul fișier .env fișier? Este corect? –  > Por mikelovelyuk.
  • Aveți unul .env fișier, dar conținutul poate fi diferit pe fiecare mașină pe care executați aplicația. De exemplu, pe mașina dvs. locală ați avea APP_ENV=development și APP_DEBUG=true, dar pe serverul de producție valorile ar fi APP_ENV=production și APP_DEBUG=false. –  > Por Bogdan.
  • Deci da, fiecare server/mediu are propriile sale valori. .env fișier. –  > Por Bogdan.
  • @Bogdan În cazul în care folosesc Composer, ar trebui să las folderul vendor într-un mediu de producție după ce am setat APP_ENV=production ? –  > Por w3spi.
  • @Zl3n Întrebi dacă ar trebui să implementezi folderul vendor folder împreună cu restul aplicației sau să rulați un composer install pe serverul de producție? –  > Por Bogdan.
Nino Paolo

Laravel 5 folosește .env pentru a vă configura aplicația. .env nu ar trebui să fie comis pe depozitul dvs., cum ar fi github sau bitbucket. În mediul dvs. local, fișierul dvs. .env va arăta după cum urmează:

# .env
APP_ENV=local

Pentru serverul dvs. de producție, este posibil să aveți următoarea configurație:

# .env
APP_ENV=production

Sergio Paiva

Nu uitați să rulați comanda php artisan config:clear după ce ați făcut modificările în fișierul .env. Faceți din nou acest lucru php artisan env, care va returna versiunea corectă.

Comentarii

  • Acest lucru mi-a salvat ziua (zilele)! Nu puteam să-mi dau seama ce era în neregulă. Permisiuni totul, dar apoi am văzut acest comentariu. Multumesc!!! –  > Por tprj29.
  • acest lucru va ajuta pe oricine care constată că serverul local încearcă să folosească env.testing după ce au rulat teste –  > Por ohhh.
Sjeiti

Ceea ce ați putea, de asemenea, ar putea avea o privire la este metoda expusă Application->loadEnvironmentFrom($file)

Aveam nevoie ca o aplicație să ruleze pe mai multe subdomenii. Deci, în bootstrap/app.php am adăugat ceva de genul:

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

Comentarii

  • Nu răspunde la întrebare, dar acest lucru este foarte util. +1 –  > Por musicin3d.
  • Piratarea fișierelor de bază este o practică proastă. Aceste modificări vor fi pierdute după următoarele actualizări –  > Por ymakux.
Marcin Łojewski

În Laravel, mediul implicit este întotdeauna de producție.

Ceea ce trebuie să faceți este să specificați numele de gazdă corect în bootstrap/start.php pentru mediul dvs., de exemplu:

/*
|--------------------------------------------------------------------------
| 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')
));

Comentarii

  • Întrebarea este pentru Laravel 5. Soluția dvs. este pentru Laravel 4. În L5 nu există bootstrap/start.php fișier. –  > Por Bogdan.
  • Mulțumesc pentru comentariul Dumneavoastră. Nu mi-am dat seama că. –  > Por Marcin Łojewski.