Cum se instalează Laravel pe Ubuntu 20.04

Tot ce trebuie să știți pentru a implementa o aplicație web Laravel pe o mașină Ubuntu 20.04 LTS

Laravel este un cadru PHP open-source foarte popular, cu sintaxa expresivă și elegantă folosită pentru a proiecta aplicații web moderne și frumoase. Laravel își propune să elimine durerea dezvoltării web și să o facă o experiență plăcută și creativă, transformând dezvoltatorii web în artizani web.

În acest ghid, veți învăța cum să instalați Laravel cu stiva LAMP pe un server Ubuntu 20.04 pentru a vă pune în funcțiune aplicația web.

Cerințe preliminare

Pentru a urma acest ghid, veți avea nevoie de un server Ubuntu 20.04 LTS și să fiți conectat ca a sudo utilizator. Înainte de a începe, actualizați și actualizați pachetele Ubuntu 20.04 rulând:

sudo apt update && sudo apt upgrade

Instalarea LAMP Stack

LAMP este un acronim pentru L sistem de operare inux, A server web pache, M baza de date ySQL și P Limbajul de programare HP. Suntem deja pe Ubuntu 20.04, care bifează Linux în stiva LAMP. Deci vom instala restul de trei pachete pentru a completa stiva LAMP pentru aplicația noastră Laravel.

Nu există un meta-pachet disponibil pentru a instala stiva LAMP în depozitele Ubuntu 20.04. Dar putem folosi o mică caracteristică îngrijită a apt manager de pachete numit sarcini. Sarcinile sunt desemnate folosind numele sarcinii disponibile cu un cadet (^) anexat acestuia.

sudo apt install lamp-server^

Această comandă va căuta în fișierele listei de pachete tot câmpul „Sarcina:” și va instala toate pachetele cu „lamp-server” în câmpul lor de activitate. Deci stiva LAMP constând din pachete Apache, MySQL și PHP cu toate dependențele lor va fi instalată pe serverul dumneavoastră Ubuntu.

Configurați firewall

Odată ce ați instalat stiva LAMP, trebuie, de asemenea, să configurați firewall-ul necomplicat (UFW) și să modificați regulile acestuia, astfel încât să puteți accesa serverul Apache de pe internet.

UFW oferă profiluri de aplicație simple care pot fi utilizate pentru a schimba regulile și a comuta traficul pe porturile de rețea. Rulați următoarea comandă pentru a lista toate aplicațiile care accesează porturile de rețea:

lista de aplicații sudo ufw

Veți vedea o ieșire ca aceasta:

Aplicații disponibile: Apache Apache Full Apache Secure OpenSSH

Porturile de rețea deschise de aceste profiluri pe serverul Ubuntu 20.04 sunt enumerate mai jos:

  • Apache: Acest profil deschide doar portul 80 (permite trafic HTTP)
  • Apache Full: Acest profil le deschide pe ambele 80 & 443 porturi (permite trafic HTTP și HTTPS)
  • Apache Secure: Acest profil deschide doar portul 443 (permite trafic HTTPS)
  • OpenSSH: Acest profil deschide portul 22 care permite protocolul SSH

Trebuie să activați profilul „Apache Full”, care va permite traficul către serverul web Apache de pe internet. În plus, va trebui să activați profilul „OpenSSH”, care permite traficul pe port 22 (SSH) pe serverul dumneavoastră Ubuntu 20.04. Dacă activați UFW fără a permite profilul „OpenSSH”, nu vă veți putea conecta la server folosind SSH.

Pentru a schimba regula UFW și a permite traficul în port 80 și 22, alerga:

sudo ufw allow 'Apache Full' sudo ufw allow 'OpenSSH'

Apoi activați paravanul de protecție UFW utilizând următoarea comandă:

sudo ufw enable

Este posibil să primiți un prompt care spune „comanda poate perturba conexiunile ssh existente. Continuați cu operațiunile (y|n)?”. presa Y pentru a continua, deoarece am adăugat deja o regulă pentru a permite SSH în UFW.

Acum puteți accesa pagina web implicită Apache folosind adresa IP a serverului Ubuntu de pe internet. Pentru a face acest lucru, deschideți browserul și introduceți adresa IP a serverului Ubuntu 20.04 în bara de adrese URL și apăsați Enter.

//Your_ubuntu_server_ip

Această pagină confirmă că serverul web Apache rulează corect și că regulile UFW sunt configurate corect.

Configurarea bazei de date MySQL pentru Laravel

Laravel 7 face interacțiunea cu bazele de date extrem de simplă prin diferitele backend-uri de baze de date pe care le acceptă, cum ar fi versiunea MySQL 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ și SQL Server 2017+. Avem deja cel mai recent pachet MySQL instalat cu lamp-sever^ sarcină. Deci, în această secțiune, vom configura serverul MySQL și apoi vom vedea cum să configurați un nou utilizator MySQL și o bază de date pentru aplicația Laravel.

Configurați MySQL

Baza de date MySQL vine cu un script de securitate preinstalat care poate fi folosit pentru a elimina unele setări implicite nesigure. Este recomandat să rulați acest script înainte de a vă implementa aplicația Laravel.

sudo mysql_secure_installation

Comanda de mai sus va executa scriptul de securitate care vă va solicita o serie de întrebări pentru configurarea serverului MySQL.

În primul rând, veți fi întrebat dacă doriți să configurați VALIDAȚI PAROLA conecteaza. Acest plugin vă verifică parola și le clasifică drept sigure sau nesigure în funcție de nivelul politicii de validare a parolei pe care îl veți alege în curând. Deci apăsați Y dacă doriți să activați acest plugin.

Ieșire: Securizarea implementării serverului MySQL. Conectarea la MySQL folosind o parolă goală. VALIDARE PAROLA COMPONENT poate fi folosit pentru a testa parolele și pentru a îmbunătăți securitatea. Verifică puterea parolei și permite utilizatorilor să seteze numai acele parole care sunt suficient de sigure. Doriți să configurați componenta VALIDATE PAROLA? Apăsați y|Y pentru Da, orice altă tastă pentru Nu: Y

Apoi setați nivelul politicii de validare a parolei fie introducând 0, 1 sau 2 în funcție de cât de puternică doriți să vă creați parola pentru bazele de date.

Ieșire: Există trei niveluri de politică de validare a parolei: LOW Length >= 8 MEDIUM Length >= 8, numeric, majuscule mixte și caractere speciale STRONG Lungime >= 8, numeric, majuscule mixte, caractere speciale și fișier dicționar Vă rugăm să introduceți 0 = LOW, 1 = MEDIU și 2 = PUTERNIC: 2

În continuare, vi se va cere să introduceți o nouă parolă pentru utilizatorul root MySQL. Introduceți o parolă potrivită pentru rădăcina dvs. MySQL. Plugin-ul VALIDAȚI PAROLA vă va oferi puterea estimată a parolei în funcție de nivelul de validare a parolei. presa Y pentru a continua cu parola pe care ați furnizat-o.

Ieșire: Vă rugăm să setați parola pentru root aici. Parolă nouă: Reintroduceți parola nouă: Puterea estimată a parolei: 100 Doriți să continuați cu parola furnizată? (Apăsați y|Y pentru Da, orice altă tastă pentru Nu) : Y

presa Y pentru restul solicitărilor, vor elimina câțiva utilizatori anonimi și bazele de date de testare, vor dezactiva autentificarea de la distanță la root și vor reîncărca noile setări pentru serverul MySQL. Când ați terminat, testați baza de date rulând:

sudo mysql

Comanda de mai sus va deschide consola MySQL, conectându-se la baza de date MySQL ca rădăcină utilizator. Veți vedea o ieșire ca aceasta:

Ieșire: Bun venit la monitorul MySQL. Comenzile se termină cu ; sau \g. ID-ul dvs. de conexiune MySQL este 10 Versiunea serverului: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle și/sau afiliații săi. Toate drepturile rezervate. Oracle este o marcă înregistrată a Oracle Corporation și/sau a afiliaților săi. Alte nume pot fi mărci comerciale ale proprietarilor respectivi. Tastați „help;” sau „\h” pentru ajutor. Tastați „\c” pentru a șterge instrucțiunea de intrare curentă. mysql>

S-ar putea să fi observat că nu a fost nevoie să introduceți parola pe care ați setat-o ​​pentru utilizatorul root MySQL. Asta pentru că metoda implicită de autentificare pentru utilizatorul root MySQL administrativ este caching_sha2_authentication in loc de mysql_native_parola metodă care utilizează o parolă pentru a vă conecta.

Deci, în mod implicit, vă puteți autentifica numai ca utilizator root MySQL cu sudo utilizatorii activați care acționează ca securitate suplimentară pentru serverul MySQL. Dar biblioteca MySQL PHP nu acceptă caching_sha2_authentication metodă. Prin urmare, trebuie să folosim mysql_native_parola metoda când creăm un utilizator nou pentru Laravel, deoarece folosește parole pentru a se conecta și a interacționa cu baza de date.

Creați un nou utilizator și bază de date MySQL

Este întotdeauna o practică bună să creați un utilizator și o bază de date noi special pentru aplicația dvs. în loc să utilizați utilizatori root MySQL și baze de date de testare. Deci vom configura un nou utilizator MySQL numit laravel_user și o bază de date numită laravel. Dacă ați urmat tutorialul până în acest punct, ar trebui să aveți consola MySQL deschisă. Pentru a crea utilizatorul numit laravel_user rulați următoarea interogare în consola MySQL:

Notă: Inlocuieste testpass în interogarea MySQL de mai jos cu o parolă puternică.

CREAȚI UTILIZATOR 'laravel_user'@'%' IDENTIFICAT CU mysql_native_password DE 'testpass';

Apoi, creați o bază de date numită laravel pentru aplicația noastră Laravel, rulând această interogare:

CREAȚI BAZĂ DE DATE laravel;

Doar utilizatorul rădăcină MySQL are permisiuni pentru noua bază de date laravel creată. Acordați toate permisiunile pentru laravel baza de date către laravel_user rulând:

Acordați totul pe laravel.* LA „laravel_user”@'%';

Deci, acum avem un nou utilizator MySQL și o bază de date, ieșim din consola MySQL rulând:

IEȘIRE;

Testați-vă noul utilizator MySQL conectându-vă la consola MySQL cu acesta, pentru a face acest lucru, executați această comandă în terminal:

mysql -u laravel_user -p

Observați -p flag în comandă, vă va solicita parola pe care ați folosit-o la crearea laravel_user (testpass în interogare). După ce v-ați autentificat în consola MySQL ca laravel_user, confirmați că utilizatorul are acces la laravel baza de date rulând:

AFIȘAȚI BAZELE DE DATE;
Ieșire: +--------------------+ | Baza de date | +--------------------+ | laravel | | schema_informatiei | +--------------------+ 2 rânduri în set (0,01 sec)

Ieșirea de mai sus confirmă faptul că utilizatorul MySQL laravel_user are permisiuni la baza de date laravel. Ieșiți din consola MySQL folosind IEȘIRE; interogare astfel încât să putem continua la crearea aplicației DemoApp Laravel.

Instalarea Laravel

Cadrul Laravel utilizează Composer pentru a descărca și gestiona dependențele sale. Deci, trebuie să instalăm Composer pe mașina noastră Ubuntu 20.04 înainte de a putea crea o aplicație Laravel.

Instalați Composer

Composer este un instrument de gestionare a dependențelor pentru PHP, care face instalarea și actualizarea cadrelor și bibliotecilor PHP mult mai ușoare. Vom vedea cum să instalați rapid Composer în acest tutorial, astfel încât să îl putem folosi pentru a descărca și gestiona cadrul Laravel.

Trebuie să instalați câteva pachete suplimentare care sunt solicitate de Composer pentru a funcționa, cum ar fi php-cli pentru a rula scripturi PHP în terminal și dezarhivați pentru a ajuta Composer să extragă pachetele. Instalați-le pe amândouă rulând:

sudo apt install php-cli unzip

Apoi, pentru a instala Composer la nivel global, descărcați scriptul de instalare Composer cu răsuci și instalează-l folosind următoarea comandă:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

În cele din urmă, verificați dacă compozitorul s-a instalat corect rulând:

compozitor
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer versiunea 1.10.8 2020-06- 24 21:23:30 Utilizare: comandă [opțiuni] [argumente]

Această ieșire confirmă că Composer funcționează corect pe serverul Ubuntu 20.04, puteți începe să îl utilizați pentru a instala și gestiona cadre și biblioteci PHP.

Creați o aplicație Laravel

Avem aproape tot ce este necesar pentru a crea o aplicație Laravel pe serverul nostru Ubuntu 20.04, cu excepția câtorva extensii PHP. Instalați aceste extensii lipsă folosind următoarea comandă:

sudo apt install php-mbstring php-xml php-bcmath php-zip php-json

Acum, putem instala Laravel și crea o nouă aplicație Laravel cu ajutorul Composer. În primul rând, asigurați-vă că vă aflați în directorul principal al utilizatorului:

cd ~

Apoi creați un nou proiect Laravel folosind Composer’s crea-proiect comanda:

compozitor create-project --prefer-dist laravel/laravel LaravelApp

Comanda de mai sus va crea un nou proiect numit LaravelApp și, de asemenea, va instala și configura Cadrul Laravel pentru dvs. Veți vedea o ieșire similară cu aceasta:

Ieșire: Crearea unui proiect „laravel/laravel” la „./LaravelApp” Instalarea laravel/laravel (v7.12.0) Instalarea laravel/laravel (v7.12.0): Descărcare (100%) Proiect creat în /home/ath/LaravelApp @php - r "file_exists('.env') || copie('.env.example', '.env');" Încărcarea depozitelor de compoziție cu informații despre pachet. Actualizarea dependențelor (inclusiv require-dev) Operațiunile pachetului: 97 instalări, 0 actualizări, 0 înlături Instalarea voku/portable-ascii (1.5.2): Descărcare (100%) Instalarea symfony/polyfill-ctype (v1) .17.1): Descărcare (100%) Instalare phpoption/phpoption (1.7.4): Descărcare (100%) Instalare vlucas/phpdotenv (v4.1.7): Descărcare (100%) Instalare symfony/css-selector (v5.1.2) : Se descarcă (100%) ....

Când instalarea s-a terminat, mergeți la directorul rădăcină al aplicației și apoi rulați Laravel artizan comandă pentru a verifica dacă toate componentele sunt instalate corect:

cd LaravelApp/ php artizan
Ieșire: Laravel Framework 7.18.0 Utilizare: comandă [opțiuni] [argumente] Opțiuni: -h, --help Afișează acest mesaj de ajutor -q, --quiet Nu scoate niciun mesaj -V, --version Afișează această versiune a aplicației --ansi Forțați ieșirea ANSI --no-ansi Dezactivați ieșirea ANSI -n, --no-interaction Nu puneți nicio întrebare interactivă --env[=ENV] Mediul în care ar trebui să ruleze comanda -v|vv|vvv, --verbose Crește verbozitatea mesajelor: 1 pentru ieșire normală, 2 pentru ieșire mai verbosă și 3 pentru depanare ....

Această ieșire confirmă că instalarea a avut succes și că toate fișierele sunt la locul lor, iar instrumentele de linie de comandă Laravel funcționează corect. Cu toate acestea, mai trebuie să configuram aplicația pentru a configura baza de date și alte câteva setări.

Configurați aplicația Laravel

Fișierele de configurare Laravel sunt situate într-un director numit config în directorul rădăcină al aplicației. În plus, când am instalat Laravel prin Composer, a creat un fișier de mediu numit „.env” în directorul rădăcină al aplicației. Fișierul de mediu include configurațiile specifice mediului și are prioritate față de setările din fișierele de configurare obișnuite aflate în directorul de configurare.

Notă: Fișierul de configurare a mediului conține informații sensibile despre serverul dvs., cum ar fi parolele bazei de date, cheile aplicației Laravel etc. Prin urmare, nu ar trebui să fie partajat public.

Vom edita acum .env fișier pentru a modifica configurația și pentru a adăuga acreditările bazei de date la acesta. Deschideți fișierul folosind editorul nano rulând:

nano .env

Există multe variabile de configurare în aceasta .env fişier. Nu trebuie să le schimbăm pe fiecare, deoarece Composer a configurat majoritatea setărilor automat. Deci, iată lista unor variabile de configurare primare despre care trebuie să le cunoașteți:

  • NUMELE APLICATIEI: Numele aplicației folosit pentru notificare și mesaje, așa că o vom seta la „LaravelApp”.
  • APP_ENV: Această variabilă este utilizată pentru a indica mediul curent al aplicației. Poate fi setat la medii locale, de dezvoltare, de testare sau de producție. O să-l setăm pentru mediul de dezvoltare pentru moment.
  • APP_KEY: Aplicație unică Cheie folosită pentru a crea săruri și hashuri pentru aplicația web. Este generat automat când instalați Laravel prin Composer, deci nu este nevoie să schimbați acest lucru.
  • APP_DEBUG: poate fi setat la adevărat sau fals, în funcție de dacă doriți să afișați erori pe partea clientului. Setați-l la fals când treceți în mediul de producție.
  • APP_URL: URL-ul de bază sau IP-ul aplicației, schimbați-l cu numele de domeniu dacă aveți unul pentru aplicația Laravel sau păstrați-l neatins pentru moment.
  • DB_DATABASE: Numele bazei de date pe care doriți să o utilizați cu aplicația Laravel. Vom folosi baza de date MySQL „laravel” pe care am creat-o în timp ce configurăm MySQL.
  • DB_USERNAME: Nume de utilizator pentru a se conecta la baza de date. Vom folosi utilizatorul MySQL „laravel_user” pe care l-am creat.
  • DB_PAROLA: Parola pentru conectarea la baza de date.
 APP_NAME= LaravelApp APP_ENV= dezvoltare APP_KEY= base64:Application_unique_key APP_DEBUG=adevărat APP_URL= //domeniu_sau_IP LOG_CHANNEL=stiva DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PAROLA= testpass

Faceți modificări la .env fișierul în consecință și când ați terminat de editat, salvați și părăsiți fișierul utilizând CTRL+X apoi apăsați Y și apăsați enter pentru a confirma. Acum, tot ce rămâne este să configurați serverul Apache și să creați o gazdă virtuală pentru aplicația noastră Laravel.

Configurarea serverului web Apache

Am instalat Laravel în folderul local al directorului principal al utilizatorului. Deși acest lucru funcționează perfect pentru dezvoltarea locală, este recomandat să aveți un director de aplicații web localizat în /var/www. Motivul pentru care nu am instalat Laravel în /var/www direct este pentru că este deținut de root și Composer nu ar trebui să fie folosit cu sudo.

Așa că folosește mv comandă pentru a muta folderul aplicației Laravel și conținutul acestuia /var/www:

sudo mv ~/Laravel/ /var/www

Directorul LaravelApp este deținut de utilizator, așa că puteți încă edita și face modificări la fișiere fără a utiliza sudo comanda. Dar serverul web Apache are nevoie de acces la directoarele cache și de stocare ale aplicației, deoarece Laravel stochează fișierele generate de aplicație în el. Schimbați proprietarul acestor foldere în www-data utilizator care utilizează chown comanda:

sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache

După ce schimbați proprietarul acestor directoare, activați Apache mod_rewrite deoarece Laravel îi cere să transforme corect adresele URL pentru a fi interpretate de funcția de rutare prin .htaccess fişier.

sudo a2enmod rescrie

Apoi, trebuie să setăm o gazdă virtuală pentru aplicația Laravel. Configurațiile gazdei virtuale sunt situate la /etc/apache2/sites-available. Vom edita fișierul gazdă virtuală implicită pentru a implementa aplicația Laravel. Deschideți fișierul implicit de configurare a gazdei virtuale folosind editorul nano:

sudo nano /etc/apache2/sites-available/000-default.conf

Schimbați rădăcina documentului de la /var/www/html la /var/www/LaravelApp/public și adăugați următorul fragment sub linia DocumentRoot:

 AllowOverride All 

Ta 000-default.conf ar trebui să arate așa ceva acum cu câteva comentarii.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combinat 

Reporniți serverul web Apache rulând următoarea comandă:

sudo systemctl reporniți apache2

Acum accesați browserul dvs. și introduceți adresa IP a serverului dvs. Ubuntu 20.04. Veți vedea pagina de pornire Laravel în loc de pagina implicită de întâmpinare Apache.

Presupunând că ați urmat acest ghid până acum, ar trebui să aveți o aplicație Laravel funcțională cu o bază de date MySQL numită laravel pentru aceasta. Din acest punct, puteți începe să vă dezvoltați singur aplicația Laravel. Pentru a afla mai multe despre cadrul Laravel și utilizarea acestuia, vizitați pagina de documente Laravel.