Kako namestiti Laravel na Ubuntu 20.04

Vse, kar morate vedeti za namestitev spletne aplikacije Laravel na stroj Ubuntu 20.04 LTS

Laravel je zelo priljubljen odprtokodni okvir PHP z ekspresivno in elegantno sintakso, ki se uporablja za oblikovanje sodobnih in lepih spletnih aplikacij. Laravel želi odstraniti bolečino spletnega razvoja in ga narediti prijetno in ustvarjalno izkušnjo ter spletne razvijalce spremeniti v spletne obrtnike.

V tem priročniku se boste naučili, kako namestiti Laravel s skladom LAMP na strežnik Ubuntu 20.04, da se vaša spletna aplikacija zažene in zažene.

Predpogoji

Če želite slediti tem navodilom, potrebujete strežnik Ubuntu 20.04 LTS in biti prijavljeni kot sudo uporabnik. Preden začnemo, posodobite in nadgradite pakete Ubuntu 20.04 tako, da zaženete:

sudo apt posodobitev && sudo apt nadgradnja

Namestitev sklada LAMP

LAMP je kratica za L operacijski sistem inux, A spletni strežnik pache, M bazo podatkov ySQL in P Programski jezik HP. Smo že na Ubuntu 20.04, ki označuje Linux v skladu LAMP. Zato bomo namestili preostale tri pakete za dokončanje sklada LAMP za našo aplikacijo Laravel.

Za namestitev sklada LAMP v skladišča Ubuntu 20.04 ni na voljo meta-paketa. Lahko pa uporabimo čedno majhno lastnost apt upravitelj paketov, imenovan naloge. Naloge so označene z imenom razpoložljive naloge s kadetom (^) priložen.

sudo apt install lamp-server^

Ta ukaz bo v datotekah s seznamom paketov poiskal vsa polja »Naloga:« in namestil vse pakete z »lamp-server« v polju opravil. Tako bo sklad LAMP, sestavljen iz paketov Apache, MySQL in PHP z vsemi njihovimi odvisnostmi, nameščen na vaš strežnik Ubuntu.

Konfigurirajte požarni zid

Ko namestite sklad LAMP, morate konfigurirati tudi nezapleteni požarni zid (UFW) in spremeniti njegova pravila, tako da lahko dostopate do strežnika Apache iz interneta.

UFW ponuja preproste profile aplikacij, ki jih je mogoče uporabiti za spreminjanje pravil in preklapljanje prometa na omrežnih vratih. Zaženite naslednji ukaz, da prikažete vse aplikacije, ki dostopajo do omrežnih vrat:

seznam aplikacij sudo ufw

Videli boste izhod, kot je ta:

Razpoložljive aplikacije: Apache Apache Full Apache Secure OpenSSH

Omrežna vrata, ki so ti profili, odprta na vašem strežniku Ubuntu 20.04, so navedena spodaj:

  • Apache: ta profil odpira samo vrata 80 (omogoča promet HTTP)
  • Apache Full: ta profil odpre oba 80 & 443 vrata (omogoča promet HTTP in HTTPS)
  • Apache Secure: ta profil odpre samo vrata 443 (omogoča promet HTTPS)
  • OpenSSH: ta profil odpre vrata 22 ki omogoča protokol SSH

Omogočiti morate profil »Apache Full«, ki bo omogočil promet na spletni strežnik Apache iz interneta. Poleg tega boste morali omogočiti tudi profil »OpenSSH«, ki omogoča promet na vratih 22 (SSH) na vašem strežniku Ubuntu 20.04. Če omogočite UFW, ne da bi dovolili profil »OpenSSH«, se ne boste mogli povezati s svojim strežnikom prek SSH.

Če želite spremeniti pravilo UFW in dovoliti promet na pristanišču 80 in 22, zaženi:

sudo ufw dovoli 'Apache Full' sudo ufw dovoli 'OpenSSH'

Nato omogočite požarni zid UFW z naslednjim ukazom:

sudo ufw omogoči

Morda boste prejeli poziv z napisom »ukaz lahko moti obstoječe povezave ssh. Nadaljujte z operacijami (y|n)?". Pritisnite Y za nadaljevanje, saj smo že dodali pravilo, ki omogoča SSH v UFW.

Zdaj lahko dostopate do privzete spletne strani Apache z uporabo naslova IP vašega strežnika Ubuntu iz interneta. Če želite to narediti, odprite brskalnik in v naslovno vrstico vnesite naslov IP vašega strežnika Ubuntu 20.04 in pritisnite enter.

//Your_ubuntu_server_ip

Ta stran potrjuje, da spletni strežnik Apache deluje pravilno in da so pravila UFW pravilno nastavljena.

Nastavitev baze podatkov MySQL za Laravel

Laravel 7 omogoča izjemno preprosto interakcijo z bazami podatkov v različnih zaledjih baze podatkov, ki jih podpira, kot so MySQL različice 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ in SQL Server 2017+. Najnovejši paket MySQL že imamo nameščen z svetilka-sever^ nalogo. V tem razdelku bomo torej konfigurirali strežnik MySQL in nato pogledali, kako nastaviti novega uporabnika in bazo podatkov MySQL za aplikacijo Laravel.

Konfigurirajte MySQL

Baza podatkov MySQL ima vnaprej nameščen varnostni skript, ki ga lahko uporabite za odstranitev nekaterih nevarnih privzetih nastavitev. Priporočljivo je, da zaženete ta skript, preden namestite aplikacijo Laravel.

sudo mysql_secure_installation

Zgornji ukaz bo izvedel varnostni skript, ki vam bo postavil vrsto vprašanj za konfiguracijo strežnika MySQL.

Najprej boste vprašani, ali želite nastaviti POTRDI GESLO vključiti. Ta vtičnik preveri vaše geslo in jih razvrsti kot varne ali nevarne glede na raven pravilnika za preverjanje gesla, ki jo boste kmalu izbrali. Torej pritisnite Y če želite omogočiti ta vtičnik.

Izhod: Zaščita postavitve strežnika MySQL. Povezava z MySQL z uporabo praznega gesla. KOMPONENTA ZA PREVERJANJE gesla se lahko uporablja za testiranje gesel in izboljšanje varnosti. Preverja moč gesla in uporabnikom omogoča, da nastavijo samo tista gesla, ki so dovolj varna. Ali želite nastaviti komponento VALIDATE PASSWORD? Pritisnite y|Y za Da, katero koli drugo tipko za Ne: Y

Nato z vnosom nastavite raven pravilnika za preverjanje gesla 0, 1 oz 2 odvisno od tega, kako močno želite ustvariti geslo za svoje baze podatkov.

Izhod: Obstajajo tri ravni pravilnika za preverjanje gesla: LOW Length >= 8 MEDIUM Length >= 8, številčni, mešani veliki in posebni znaki STRONG Dolžina >= 8, številčni, mešani veliki in veliki znaki, posebni znaki in slovarska datoteka. Vnesite 0 = LOW, 1 = SREDNJE in 2 = MOČNO: 2

Nato boste morali vnesti novo geslo za root uporabnika MySQL. Vnesite ustrezno geslo za vaš koren MySQL. Vtičnik VALIDATE PASSWORD vam bo dal ocenjeno moč vašega gesla glede na vašo raven preverjanja gesla. Pritisnite Y da nadaljujete z geslom, ki ste ga navedli.

Izhod: Tukaj nastavite geslo za root. Novo geslo: Ponovno vnesite novo geslo: Ocenjena moč gesla: 100 Ali želite nadaljevati z navedenim geslom? (Pritisnite y|Y za Da, katero koli drugo tipko za Ne) : Y

Pritisnite Y za ostale pozive bodo odstranili nekatere anonimne uporabnike in testne baze podatkov, onemogočili oddaljeno root prijavo in znova naložili nove nastavitve za strežnik MySQL. Ko končate, preizkusite svojo bazo podatkov tako, da zaženete:

sudo mysql

Zgornji ukaz bo odprl ukazno mizo MySQL in se povezal z bazo podatkov MySQL kot koren uporabnik. Videli boste izhod, kot je ta:

Izhod: Dobrodošli v monitorju MySQL. Ukazi se končajo z ; ali \g. Vaš ID povezave MySQL je 10 Različica strežnika: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Avtorske pravice (c) 2000, 2020, Oracle in/ali njegove podružnice. Vse pravice pridržane. Oracle je registrirana blagovna znamka družbe Oracle Corporation in/ali njenih podružnic. Druga imena so lahko blagovne znamke njihovih lastnikov. Vnesite 'help;' ali '\h' za pomoč. Vnesite '\c', da počistite trenutni vhodni stavek. mysql>

Morda ste opazili, da vam ni bilo treba vnesti gesla, ki ste ga nastavili za korenskega uporabnika MySQL. To je zato, ker je privzeta metoda preverjanja pristnosti za skrbniškega korenskega uporabnika MySQL caching_sha2_authentication namesto mysql_native_password metoda, ki uporablja geslo za prijavo.

Privzeto se torej lahko prijavite samo kot root uporabnik MySQL sudo omogočene uporabnike, ki delujejo kot dodatna varnost za strežnik MySQL. Toda knjižnica MySQL PHP ne podpira caching_sha2_authentication metoda. Zato moramo uporabiti mysql_native_password metodo, ko ustvarimo novega uporabnika za Laravel, saj uporablja gesla za povezovanje in interakcijo z bazo podatkov.

Ustvarite novo uporabniško in bazo podatkov MySQL

Vedno je dobra praksa, da ustvarite novega uporabnika in bazo podatkov posebej za vašo aplikacijo, namesto da uporabljate korenske uporabniške in testne baze podatkov MySQL. Tako bomo postavili novega uporabnika MySQL, imenovanega laravel_user in bazo podatkov, ki se imenuje laravel. Če ste do te točke sledili vadnici, bi morali imeti odprto konzolo MySQL. Če želite ustvariti uporabnika, klicanega laravel_user zaženite naslednjo poizvedbo v konzoli MySQL:

Opomba: Zamenjajte test pass v spodnji poizvedbi MySQL z močnim geslom.

USTVARJITE UPORABNIKA 'laravel_user'@'%', KI GA IDENTIFICIRA Z mysql_native_password Z 'testpass';

Nato ustvarite bazo podatkov z imenom laravel za našo aplikacijo Laravel tako, da zaženete to poizvedbo:

USTVARI BAZA PODATKOV laravel;

Samo korenski uporabnik MySQL ima dovoljenja za novo ustvarjeno bazo podatkov laravel. Dodeli vsa dovoljenja za laravel bazo podatkov do laravel_user s tekom:

ODOBRITE VSE NA laravel.* TO 'laravel_user'@'%';

Torej, zdaj imamo novega uporabnika MySQL in bazo podatkov, zapustite ukazno mizo MySQL tako, da zaženete:

IZHOD;

Preizkusite svojega novega uporabnika MySQL tako, da se z njim prijavite v konzolo MySQL, v terminalu zaženite ta ukaz:

mysql -u laravel_user -p

Upoštevajte -str zastavico v ukazu, vas bo pozval, da vnesete geslo, ki ste ga uporabili med ustvarjanjem laravel_user (test pass v poizvedbi). Ko se prijavite v konzolo MySQL kot laravel_user, potrdite, da ima uporabnik dostop do laravel bazo podatkov z zagonom:

POKAŽI BAZE PODATKOV;
Izhod: +-------------------+ | Baza podatkov | +-------------------+ | laravel | | informacijska_shema | +-------------------+ 2 vrstici v nizu (0,01 s)

Zgornji izhod potrjuje, da je uporabnik MySQL laravel_user ima dovoljenja za bazo podatkov laravel. Zapustite ukazno mizo MySQL z uporabo IZHOD; poizvedbo, da lahko nadaljujemo z ustvarjanjem aplikacije DemoApp Laravel.

Namestitev Laravel

Okvir Laravel uporablja Composer za prenos in upravljanje njegovih odvisnosti. Torej moramo na naš računalnik Ubuntu 20.04 namestiti Composer, preden lahko ustvarimo aplikacijo Laravel.

Namesti Composer

Composer je orodje za upravljanje odvisnosti za PHP, zaradi česar je namestitev in posodabljanje ogrodja in knjižnic PHP tako enostavnejša. V tej vadnici si bomo ogledali, kako hitro namestiti Composer, da ga bomo lahko uporabljali za prenos in upravljanje ogrodja Laravel.

Namestiti morate nekaj dodatnih paketov, ki jih Composer zahteva za delovanje, kot je npr php-cli za zagon PHP skriptov v terminalu in odprite zadrgo za pomoč Composerju pri ekstrakciji paketov. Oba namestite tako, da zaženete:

sudo apt namestite php-cli razpakirajte

Nato za globalno namestitev Composer prenesite namestitveni skript Composer z curl in ga namestite z naslednjim ukazom:

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

Na koncu preverite, ali je skladatelj pravilno nameščen tako, da zaženete:

skladatelj
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Skladateljska različica 1.10.8 2020-06- 24 21:23:30 Uporaba: ukaz [možnosti] [argumenti]

Ta izhod potrjuje, da Composer pravilno deluje na vašem strežniku Ubuntu 20.04, lahko ga začnete uporabljati za namestitev in upravljanje ogrodij in knjižnic PHP.

Ustvarite aplikacijo Laravel

Imamo skoraj vse, kar je potrebno za ustvarjanje aplikacije Laravel na našem strežniku Ubuntu 20.04, razen nekaj razširitev PHP. Namestite te manjkajoče razširitve z naslednjim ukazom:

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

Zdaj lahko namestimo Laravel in s pomočjo Composerja ustvarimo novo aplikacijo Laravel. Najprej se prepričajte, da ste v domačem imeniku vašega uporabnika:

cd ~

Nato ustvarite nov projekt Laravel z uporabo Composer's ustvari-projekt ukaz:

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

Zgornji ukaz bo ustvaril nov projekt, imenovan LaravelApp, poleg tega pa bo namesto vas namestil in konfiguriral okvir Laravel. Videli boste izhod, podoben temu:

Izhod: Ustvarjanje projekta "laravel/laravel" na "./LaravelApp" Namestitev laravel/laravel (v7.12.0) Namestitev laravel/laravel (v7.12.0): Prenos (100%) Ustvarjen projekt v /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Nalaganje repozitorijev skladatelja s podatki o paketih Posodabljanje odvisnosti (vključno z zahteva-dev) Operacije paketa: 97 namestitev, 0 posodobitev, 0 odstranitev Namestitev voku/portable-ascii (1.5.2): Prenos (100%) Namestitev symfony/polyfill-ctype (v1 .17.1): Prenos (100%) Namestitev phpoption/phpoption (1.7.4): Prenos (100%) Namestitev vlucas/phpdotenv (v4.1.7): Prenos (100%) Namestitev symfony/css-selector (v5.1.2) : Prenos (100%) ....

Ko je namestitev končana, pojdite v korenski imenik aplikacije in nato zaženite program Laravel obrtnik ukaz za preverjanje, ali so vse komponente pravilno nameščene:

cd LaravelApp/ php artisan
Izhod: Laravel Framework 7.18.0 Uporaba: ukaz [možnosti] [argumenti] Možnosti: -h, --help Prikaži to sporočilo pomoči -q, --quiet Ne oddaj nobenega sporočila -V, --version Prikaži to različico aplikacije --ansi Prisilite izhod ANSI --no-ansi Onemogoči izhod ANSI -n, --no-interaction Ne postavljajte nobenega interaktivnega vprašanja --env[=ENV] Okolje, v katerem naj se ukaz izvaja pod -v|vv|vvv, --verbose Povečaj podrobnost sporočil: 1 za običajen izhod, 2 za bolj natančen izhod in 3 za odpravljanje napak ....

Ta izhod potrjuje, da je bila namestitev uspešna in da so vse datoteke na svojem mestu in orodja ukazne vrstice Laravel delujejo pravilno. Še vedno pa moramo aplikacijo konfigurirati za nastavitev baze podatkov in nekaj drugih nastavitev.

Konfigurirajte aplikacijo Laravel

Konfiguracijske datoteke Laravel se nahajajo v imeniku z imenom konfigur znotraj korenskega imenika aplikacije. Poleg tega, ko smo Laravel namestili prek Composerja, je ustvaril okoljsko datoteko z imenom '.env' v korenskem imeniku aplikacije. Okoljska datoteka vključuje konfiguracije, specifične za okolje, in ima prednost pred nastavitvami v običajnih konfiguracijskih datotekah, ki se nahajajo v imeniku konfiguracije.

Opomba: Konfiguracijska datoteka okolja vsebuje občutljive informacije o vašem strežniku, kot so gesla baze podatkov, ključi aplikacije Laravel itd. Zato je nikoli ne smete javno deliti.

Zdaj bomo uredili .env datoteko, da spremenite konfiguracijo in ji dodate poverilnice baze podatkov. Odprite datoteko z nano urejevalnikom tako, da zaženete:

nano .env

V tem je veliko konfiguracijskih spremenljivk .env mapa. Ni nam treba spreminjati vsakega od njih, saj je Composer večino nastavitev konfiguriral samodejno. Torej, tukaj je seznam nekaterih primarnih konfiguracijskih spremenljivk, ki jih morate vedeti:

  • APP_NAME: Ime aplikacije, ki se uporablja za obvestila in sporočila, zato ga bomo nastavili na "LaravelApp".
  • APP_ENV: Ta spremenljivka se uporablja za označevanje trenutnega okolja aplikacije. Lahko se nastavi na lokalno, razvojno, preizkušalno ali produkcijsko okolje. Zaenkrat ga bomo nastavili v razvojnem okolju.
  • APP_KEY: Edinstven ključ aplikacije, ki se uporablja za ustvarjanje soli in hash za spletno aplikacijo. Ustvari se samodejno, ko namestite Laravel prek Composerja, zato tega ni treba spreminjati.
  • APP_DEBUG: Lahko se nastavi na true ali false, odvisno od tega, ali želite prikazati napake na strani odjemalca. Ko se premaknete v produkcijsko okolje, ga nastavite na false.
  • APP_URL: Osnovni URL ali IP za aplikacijo, spremenite ga v ime vaše domene, če ga imate za vašo aplikacijo Laravel, ali pa ga za zdaj ne dotaknite.
  • DB_DATABASE: Ime baze podatkov, ki jo želite uporabiti z aplikacijo Laravel. Uporabili bomo bazo podatkov MySQL 'laravel', ki smo jo ustvarili med konfiguracijo MySQL.
  • DB_USERNAME: Uporabniško ime za povezavo z bazo podatkov. Uporabili bomo uporabnika MySQL 'laravel_user', ki smo ga ustvarili.
  • DB_PASSWORD: Geslo za povezavo z bazo podatkov.
 APP_NAME= LaravelApp APP_ENV= razvoj APP_KEY= base64:Aplikacijski_unikatni_ključ APP_DEBUG=true APP_URL= //domain_or_IP LOG_CHANNEL=sklad DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PASSWORD= test pass

Izvedite spremembe v .env ustrezno datoteko in ko končate z urejanjem, shranite in zapustite datoteko z uporabo CTRL+X nato pritisnite Y in pritisnite enter za potrditev. Zdaj je ostalo le še, da konfigurirate strežnik Apache in ustvarite virtualni gostitelj za našo aplikacijo Laravel.

Nastavitev spletnega strežnika Apache

Laravel smo namestili v lokalno mapo domačega imenika uporabnika. Čeprav to deluje popolnoma v redu za lokalni razvoj, je priporočljiva praksa, da se v njem nahaja imenik spletnih aplikacij /var/www. Razlog, zakaj nismo namestili Laravela /var/www neposredno zato, ker je v lasti root in Composer se ne sme uporabljati z sudo.

Zato uporabite mv ukaz za premikanje mape aplikacije Laravel in njene vsebine /var/www:

sudo mv ~/Laravel/ /var/www

Imenik LaravelApp je v lasti uporabnika, tako da lahko še vedno urejate in spreminjate datoteke brez uporabe sudo ukaz. Toda spletni strežnik Apache potrebuje dostop do predpomnilnika in imenikov za shranjevanje aplikacije, saj Laravel vanj shranjuje datoteke, ki jih ustvari aplikacija. Spremenite lastnika teh map v www-podatki uporabnik, ki uporablja chown ukaz:

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

Ko spremenite lastnika teh imenikov, omogočite Apache mod_rewrite saj Laravel zahteva, da pravilno preoblikuje URL-je, ki jih razlaga njegova usmerjevalna funkcija preko .htaccess mapa.

prepis sudo a2enmod

Nato moramo nastaviti navideznega gostitelja za aplikacijo Laravel. Konfiguracije navideznega gostitelja se nahajajo na /etc/apache2/sites-available. Uredili bomo privzeto datoteko navideznega gostitelja za namestitev aplikacije Laravel. Odprite privzeto konfiguracijsko datoteko navideznega gostitelja z nano urejevalnikom:

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

Spremenite koren dokumenta iz /var/www/html do /var/www/LaravelApp/public in dodajte naslednji delček pod vrstico DocumentRoot:

 AllowOverride All 

Vaš 000-default.conf zdaj bi moralo izgledati nekako takole z nekaj komentarji.

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

Znova zaženite spletni strežnik Apache z naslednjim ukazom:

sudo systemctl znova zaženi apache2

Zdaj pojdite v brskalnik in vnesite naslov IP vašega strežnika Ubuntu 20.04. Videli boste začetno stran Laravel namesto privzete pozdravne strani Apache.

Ob predpostavki, da ste do sedaj upoštevali ta priročnik, bi morali imeti delujočo aplikacijo Laravel z bazo podatkov MySQL, imenovano laravel za to. Od te točke lahko začnete razvijati svojo aplikacijo Laravel sami. Če želite izvedeti več o ogrodju Laravel in njegovi uporabi, obiščite stran z dokumenti Laravel.