Sve što trebate znati za implementaciju Laravel web aplikacije na Ubuntu 20.04 LTS stroj
Laravel je vrlo popularan open-source PHP okvir s izražajnom i elegantnom sintaksom koja se koristi za dizajn modernih i lijepih web aplikacija. Laravel ima za cilj ukloniti bol od web razvoja i učiniti ga ugodnim i kreativnim iskustvom, pretvarajući web programere u web obrtnike.
U ovom vodiču naučit ćete kako instalirati Laravel s LAMP stogom na Ubuntu 20.04 poslužitelj kako biste pokrenuli i pokrenuli svoju web aplikaciju.
Preduvjeti
Da biste slijedili ovaj vodič, trebat će vam Ubuntu 20.04 LTS poslužitelj i biti prijavljeni kao sudo
korisnik. Prije nego što počnemo, ažurirajte i nadogradite Ubuntu 20.04 pakete pokretanjem:
sudo apt ažuriranje && sudo apt nadogradnja
Instalacija LAMP Stack
LAMP je akronim za L inux operativni sustav, A pache web poslužitelj, M ySQL baza podataka i P HP programski jezik. Već smo na Ubuntu 20.04 koji označava Linux u LAMP stogu. Dakle, mi ćemo instalirati preostala tri paketa kako bismo dovršili LAMP stog za našu Laravel aplikaciju.
Ne postoji dostupan meta-paket za instalaciju LAMP stog u Ubuntu 20.04 repozitorijumi. Ali možemo koristiti zgodnu malu značajku prikladan
upravitelj paketa pod nazivom zadaci. Zadaci se označavaju imenom dostupnog zadatka s kadetom (^
) priložen uz njega.
sudo apt instalirati lamp-server^
Ova naredba će pretražiti datoteke s popisom paketa za sva polja "Task:" i instalirati sve pakete s "lamp-server" u polju zadatka. Dakle, LAMP stog koji se sastoji od Apache, MySQL i PHP paketa sa svim njihovim ovisnostima bit će instaliran na vašem Ubuntu poslužitelju.
Konfigurirajte vatrozid
Nakon što instalirate LAMP stog, također morate konfigurirati nekomplicirani vatrozid (UFW) i promijeniti njegova pravila tako da možete pristupiti Apache poslužitelju s interneta.
UFW pruža jednostavne profile aplikacija koji se mogu koristiti za promjenu pravila i prebacivanje prometa na mrežnim priključcima. Pokrenite sljedeću naredbu za popis svih aplikacija koje pristupaju mrežnim priključcima:
sudo ufw popis aplikacija
Vidjet ćete izlaz kao što je ovaj:
Dostupne aplikacije: Apache Apache Full Apache Secure OpenSSH
Mrežni priključci ovih profila otvoreni na vašem Ubuntu 20.04 poslužitelju navedeni su u nastavku:
- Apache: Ovaj profil otvara samo port
80
(dopušta HTTP promet) - Apache Full: Ovaj profil otvara oba
80
&443
portovi (dopušta HTTP i HTTPS promet) - Apache Secure: Ovaj profil otvara samo port
443
(dopušta HTTPS promet) - OpenSSH: Ovaj profil otvara port
22
koji omogućuje SSH protokol
Morate omogućiti 'Apache Full' profil koji će omogućiti promet na Apache web poslužitelj s interneta. Osim toga, također ćete morati omogućiti 'OpenSSH' profil koji omogućuje promet na portu 22
(SSH) na vašem Ubuntu 20.04 poslužitelju. Ako omogućite UFW bez dopuštanja 'OpenSSH' profila, nećete se moći spojiti na svoj poslužitelj pomoću SSH-a.
Za promjenu pravila UFW i dopuštanje prometa na portu 80
i 22
, trčanje:
sudo ufw dopusti 'Apache Full' sudo ufw dopusti 'OpenSSH'
Zatim omogućite UFW vatrozid pomoću sljedeće naredbe:
sudo ufw omogućiti
Možda ćete dobiti upit koji kaže "naredba može poremetiti postojeće ssh veze. Nastaviti s operacijama (y|n)?”. Pritisnite Y
za nastavak jer smo već dodali pravilo za dopuštanje SSH u UFW.
Sada možete pristupiti zadanoj web stranici Apachea koristeći IP adresu vašeg Ubuntu poslužitelja s interneta. Da biste to učinili, otvorite svoj preglednik i upišite IP adresu vašeg Ubuntu 20.04 poslužitelja u URL traku i pritisnite enter.
//Vaš_ubuntu_server_ip
Ova stranica potvrđuje da Apache web poslužitelj radi ispravno i da su UFW pravila ispravno postavljena.
Postavljanje MySQL baze podataka za Laravel
Laravel 7 čini interakciju s bazama podataka iznimno jednostavnom u različitim pozadinskim dijelovima baze podataka koje podržava, kao što su MySQL verzija 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ i SQL Server 2017+. Već imamo instaliran najnoviji MySQL paket s lamp-sever^
zadatak. Stoga ćemo u ovom odjeljku konfigurirati MySQL poslužitelj, a zatim pogledati kako postaviti novog MySQL korisnika i bazu podataka za Laravel aplikaciju.
Konfigurirajte MySQL
MySQL baza podataka dolazi s unaprijed instaliranom sigurnosnom skriptom koja se može koristiti za uklanjanje nekih nesigurnih zadanih postavki. Preporuča se da pokrenete ovu skriptu prije nego što implementirate svoju Laravel aplikaciju.
sudo mysql_secure_installation
Gornja naredba će izvršiti sigurnosnu skriptu koja će vam postaviti niz pitanja za konfiguriranje MySQL poslužitelja.
Prvo ćete biti upitani želite li postaviti POTVRDI LOZINKU
uključiti. Ovaj dodatak provjerava vašu zaporku i rangira je kao sigurnu ili nesigurnu na temelju razine pravila provjere lozinke koju ćete uskoro odabrati. Pa pritisnite Y ako želite omogućiti ovaj dodatak.
Izlaz: Osiguravanje implementacije MySQL poslužitelja. Povezivanje na MySQL pomoću prazne lozinke. KOMPONENTA ZA POTVRDI LOZINKE može se koristiti za testiranje lozinki i poboljšanje sigurnosti. Provjerava snagu lozinke i omogućuje korisnicima postavljanje samo onih lozinki koje su dovoljno sigurne. Želite li postaviti komponentu VALIDATE PASSWORD? Pritisnite y|Y za Da, bilo koju drugu tipku za Ne: Y
Zatim postavite razinu politike provjere lozinke bilo kojim unosom 0
, 1
ili 2
ovisno o tome koliko jaku želite stvoriti svoju lozinku za svoje baze podataka.
Izlaz: Postoje tri razine pravila provjere valjanosti lozinke: LOW Length >= 8 MEDIUM Length >= 8, numerički, mješovita velika i mala slova i posebni znakovi STRONG Duljina >= 8, brojčani, mješoviti velika i mala slova, posebni znakovi i datoteka rječnika Unesite 0 = LOW, 1 = SREDNJE i 2 = SNAŽNO: 2
Zatim će se od vas tražiti da unesete novu lozinku za MySQL root korisnika. Unesite odgovarajuću lozinku za vaš MySQL root. Dodatak VALIDATE PASSWORD dat će vam procijenjenu snagu vaše lozinke prema razini provjere valjanosti lozinke. Pritisnite Y
da nastavite s lozinkom koju ste dali.
Izlaz: Ovdje postavite lozinku za root. Nova lozinka: Ponovno unesite novu lozinku: Procijenjena snaga lozinke: 100 Želite li nastaviti s priloženom lozinkom? (Pritisnite y|Y za Da, bilo koju drugu tipku za Ne) : Y
Pritisnite Y
za ostatak upita, oni će ukloniti neke anonimne korisnike i testne baze podataka, onemogućiti udaljenu root prijavu i ponovno učitati nove postavke za MySQL poslužitelj. Kada završite, testirajte svoju bazu podataka tako što ćete pokrenuti:
sudo mysql
Gornja naredba će otvoriti MySQL konzolu, povezujući se s MySQL bazom podataka kao korijen korisnik. Vidjet ćete izlaz kao što je ovaj:
Izlaz: Dobrodošli u MySQL monitor. Naredbe završavaju s ; ili \g. Vaš ID MySQL veze je 10 Verzija poslužitelja: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Autorska prava (c) 2000, 2020, Oracle i/ili njegove podružnice. Sva prava pridržana. Oracle je registrirani zaštitni znak tvrtke Oracle Corporation i/ili njezinih podružnica. Ostali nazivi mogu biti zaštitni znaci svojih vlasnika. Upišite 'help;' ili '\h' za pomoć. Upišite '\c' za brisanje trenutačnog unosa. mysql>
Možda ste primijetili da ne morate unijeti lozinku koju ste postavili za MySQL root korisnika. To je zato što je zadana metoda provjere autentičnosti za administrativnog MySQL root korisnika caching_sha2_authentication
umjesto od mysql_native_password
metoda koja koristi lozinku za prijavu.
Dakle, prema zadanim postavkama, možete se prijaviti samo kao MySQL root korisnik s sudo
omogućeni korisnici koji djeluju kao dodatna zaštita za MySQL poslužitelj. Ali MySQL PHP biblioteka ne podržava caching_sha2_authentication
metoda. Stoga trebamo koristiti mysql_native_password
metodu kada kreiramo novog korisnika za Laravel jer koristi lozinke za povezivanje i interakciju s bazom podataka.
Stvorite novu korisničku i bazu podataka MySQL
Uvijek je dobra praksa stvoriti novog korisnika i bazu podataka posebno za vašu aplikaciju umjesto korištenja MySQL root korisničkih i testnih baza podataka. Dakle, mi ćemo postaviti novog MySQL korisnika pod nazivom laravel_user
a baza podataka tzv laravel
. Ako ste do sada pratili tutorial, trebali biste imati otvorenu MySQL konzolu. Za stvaranje korisnika pod nazivom laravel_user
pokrenite sljedeći upit u MySQL konzoli:
Bilješka: Zamijenite test pass
u donjem MySQL upitu s jakom lozinkom.
STVORI KORISNIKA 'laravel_user'@'%' IDENTIFICIRANOGA S mysql_native_password PO 'testpass';
Zatim stvorite bazu podataka pod nazivom laravel
za našu Laravel aplikaciju pokretanjem ovog upita:
STVORI BAZU PODATAKA laravel;
Samo MySQL root korisnik ima dopuštenja za novostvorenu bazu podataka laravel. Dajte sva dopuštenja za laravel
baze podataka na laravel_user
trčanjem:
ODOBRITE SVE NA laravelu.* NA 'laravel_user'@'%';
Dakle, sada imamo novog korisnika MySQL i bazu podataka, izađite iz MySQL konzole pokretanjem:
IZLAZ;
Testirajte svog novog korisnika MySQL tako da se prijavite na MySQL konzolu s njim, da biste to učinili, pokrenite ovu naredbu u terminalu:
mysql -u laravel_user -p
Primijetite -str
zastavicu u naredbi, zatražit će od vas lozinku koju ste koristili tijekom kreiranja laravel_user
(test pass
u upitu). Nakon što ste se prijavili na MySQL konzolu kao laravel_user
, potvrdite da korisnik ima pristup laravel
baze podataka pokretanjem:
PRIKAŽI BAZE PODATAKA;
Izlaz: +-------------------+ | Baza podataka | +-------------------+ | laravel | | shema_informacije | +-------------------+ 2 reda u setu (0,01 s)
Gornji izlaz potvrđuje da je korisnik MySQL laravel_user
ima dopuštenja za bazu podataka laravel
. Izađite iz MySQL konzole koristeći IZLAZ;
upit kako bismo mogli nastaviti s stvaranjem aplikacije DemoApp Laravel.
Instalacija Laravela
Laravel okvir koristi Composer za preuzimanje i upravljanje njegovim ovisnostima. Dakle, moramo instalirati Composer na naš Ubuntu 20.04 stroj prije nego što možemo stvoriti Laravel aplikaciju.
Instalirajte Composer
Composer je alat za upravljanje ovisnostima za PHP, koji uvelike olakšava instalaciju i ažuriranje PHP okvira i knjižnica. U ovom vodiču ćemo pogledati kako brzo instalirati Composer kako bismo ga mogli koristiti za preuzimanje i upravljanje Laravel framework-om.
Morate instalirati neke dodatne pakete koji su potrebni Composeru za funkcioniranje, kao npr php-cli
za pokretanje PHP skripte u terminalu i otvoriti rajsfešlus
da pomogne Composeru da izdvoji pakete. Instalirajte ih oboje tako što ćete pokrenuti:
sudo apt instalirajte php-cli raspakirajte
Zatim da biste instalirali Composer globalno, preuzmite instalacijsku skriptu Composer s kovrča
i instalirajte ga pomoću sljedeće naredbe:
curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Na kraju, provjerite je li skladatelj ispravno instaliran tako što ćete pokrenuti:
kompozitor
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Verzija skladatelja 1.10.8 2020-06- 24 21:23:30 Upotreba: naredba [opcije] [argumenti]
Ovaj izlaz potvrđuje da Composer radi ispravno na vašem Ubuntu 20.04 poslužitelju, možete ga početi koristiti za instalaciju i upravljanje PHP okvirima i knjižnicama.
Napravite Laravel aplikaciju
Gotovo imamo sve što je potrebno za stvaranje Laravel aplikacije na našem Ubuntu 20.04 poslužitelju osim nekoliko PHP ekstenzija. Instalirajte ova proširenja koja nedostaju pomoću sljedeće naredbe:
sudo apt instaliraj php-mbstring php-xml php-bcmath php-zip php-json
Sada možemo instalirati Laravel i stvoriti novu Laravel aplikaciju uz pomoć Composer. Prvo provjerite jeste li u početnom imeniku korisnika:
cd ~
Zatim stvorite novi Laravel projekt koristeći Composer kreiraj-projekt
naredba:
skladatelj create-project --prefer-dist laravel/laravel LaravelApp
Gornja naredba će stvoriti novi projekt nazvan LaravelApp i također će instalirati i konfigurirati Laravel Framework za vas. Vidjet ćete izlaz sličan ovome:
Izlaz: Kreiranje projekta "laravel/laravel" na "./LaravelApp" Instaliranje laravel/laravel (v7.12.0) Instaliranje laravel/laravel (v7.12.0): Preuzimanje (100%) Napravljen projekt u /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Učitavanje skladišta skladišta s informacijama o paketu Ažuriranje ovisnosti (uključujući require-dev) Operacije paketa: 97 instalacija, 0 ažuriranja, 0 uklanjanja Instalacija voku/portable-ascii (1.5.2): Preuzimanje (100%) Instaliranje symfony/polyfill-ctype (v1 .17.1): Preuzimanje (100%) Instaliranje phpoption/phpoption (1.7.4): Preuzimanje (100%) Instaliranje vlucas/phpdotenv (v4.1.7): Preuzimanje (100%) Instaliranje symfony/css-selektora (v5.1.2) : Preuzimanje (100%) ....
Kada je instalacija gotova, idite na korijenski direktorij aplikacije i zatim pokrenite Laravel obrtnik
naredba za provjeru da su sve komponente ispravno instalirane:
cd LaravelApp/ php artisan
Izlaz: Laravel Framework 7.18.0 Upotreba: naredba [opcije] [argumenti] Opcije: -h, --help Prikaži ovu poruku pomoći -q, --quiet Nemojte ispisivati nikakvu poruku -V, --version Prikaži ovu verziju aplikacije --ansi Force ANSI output --no-ansi Onemogući ANSI izlaz -n, --no-interaction Ne postavljaj nikakva interaktivna pitanja --env[=ENV] Okruženje u kojem bi se naredba trebala izvoditi pod -v|vv|vvv, --verbose Povećaj opširnost poruka: 1 za normalan izlaz, 2 za opširniji izlaz i 3 za ispravljanje pogrešaka ....
Ovaj izlaz potvrđuje da je instalacija bila uspješna i da su sve datoteke na mjestu i da alati naredbenog retka Laravel rade ispravno. Međutim, još uvijek moramo konfigurirati aplikaciju za postavljanje baze podataka i nekoliko drugih postavki.
Konfigurirajte Laravel aplikaciju
Laravel konfiguracijske datoteke nalaze se u direktoriju tzv konfig
unutar korijenskog direktorija aplikacije. Osim toga, kada smo instalirali Laravel putem Composer-a, stvorio je datoteku okruženja pod nazivom '.env' u korijenskom direktoriju aplikacije. Datoteka okruženja uključuje konfiguracije specifične za okruženje i ima prednost nad postavkama u uobičajenim konfiguracijskim datotekama koje se nalaze unutar konfiguracijskog direktorija.
Napomena: Konfiguracijska datoteka okruženja sadrži osjetljive informacije o vašem poslužitelju kao što su lozinke baze podataka, ključevi aplikacije Laravel itd. Stoga se nikada ne bi smjela dijeliti javno.
Sada ćemo urediti .env
datoteku za promjenu konfiguracije i dodavanje vjerodajnica baze podataka u nju. Otvorite datoteku pomoću nano editora tako što ćete pokrenuti:
nano .env
U tome postoji mnogo konfiguracijskih varijabli .env
datoteka. Ne moramo mijenjati svaki od njih, jer je Composer većinu postavki automatski konfigurirao. Dakle, ovdje je popis nekih primarnih konfiguracijskih varijabli o kojima morate znati:
APP_NAME
: Naziv aplikacije koji se koristi za obavijesti i poruke, tako da ćemo ga postaviti na 'LaravelApp'.APP_ENV
: Ova varijabla se koristi za označavanje trenutnog okruženja aplikacije. Može se postaviti na lokalno, razvojno, testiranje ili proizvodno okruženje. Za sada ćemo ga postaviti u razvojno okruženje.APP_KEY
: Jedinstveni ključ aplikacije koji se koristi za stvaranje soli i hashova za web-aplikaciju. Automatski se generira kada instalirate Laravel putem Composer-a, tako da nema potrebe to mijenjati.APP_DEBUG
: Može se postaviti na true ili false, ovisno o tome želite li prikazati pogreške na strani klijenta. Postavite ga na false kada prijeđete u proizvodno okruženje.APP_URL
: Osnovni URL ili IP za aplikaciju, promijenite ga u naziv svoje domene ako ga imate za svoju Laravel aplikaciju ili ga za sada ostavite netaknutim.DB_DATABASE
: Naziv baze podataka koju želite koristiti s Laravel aplikacijom. Koristit ćemo MySQL bazu podataka 'laravel' koju smo kreirali tijekom konfiguriranja MySQL-a.DB_USERNAME
: Korisničko ime za povezivanje s bazom podataka. Koristit ćemo MySQL korisnika 'laravel_user' kojeg smo kreirali.DB_PASSWORD
: Lozinka za povezivanje s bazom podataka.
APP_NAME=LaravelApp
APP_ENV=razvoj
APP_KEY=base64:Aplikacijski_jedinstveni_ključ
APP_DEBUG=true APP_URL=//domain_or_IP
LOG_CHANNEL=stog DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user
DB_PASSWORD=test pass
Napravite izmjene na .env
datoteku u skladu s tim i kada završite s uređivanjem, spremite i izađite iz datoteke pomoću CTRL+X
zatim pritisnite Y
i pritisnite enter za potvrdu. Sada, sve što je preostalo je konfigurirati Apache poslužitelj i stvoriti virtualni host za našu Laravel aplikaciju.
Postavljanje Apache web poslužitelja
Instalirali smo Laravel u lokalnu mapu korisničkog kućnog direktorija. Iako ovo savršeno funkcionira za lokalni razvoj, preporučuje se da se u njemu nalazi direktorij web aplikacija /var/www
. Razlog zašto nismo instalirali Laravel /var/www
izravno je zato što je u vlasništvu root-a i Composer se ne bi trebao koristiti s sudo
.
Zato upotrijebite mv
naredba za premještanje mape aplikacije Laravel i njezinog sadržaja u /var/www
:
sudo mv ~/Laravel/ /var/www
Direktorij LaravelApp je u vlasništvu korisnika, tako da još uvijek možete uređivati i mijenjati datoteke bez korištenja sudo
naredba. Ali Apache web poslužitelj treba pristup predmemoriji i direktorijima za pohranu aplikacije jer Laravel u njega pohranjuje datoteke generirane aplikacije. Promijenite vlasnika ovih mapa u www-podaci
korisnik koji koristi chown
naredba:
sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache
Nakon što promijenite vlasnika ovih direktorija, omogućite Apache mod_rewrite
jer Laravel zahtijeva ispravnu transformaciju URL-ova koji će biti interpretirani njegovom funkcijom usmjeravanja putem .htaccess
datoteka.
sudo a2enmod prepisati
Zatim moramo postaviti virtualni host za Laravel aplikaciju. Konfiguracije virtualnog hosta nalaze se na /etc/apache2/sites-available
. Uredit ćemo zadanu datoteku virtualnog hosta za implementaciju Laravel aplikacije. Otvorite zadanu konfiguracijsku datoteku virtualnog hosta pomoću nano editora:
sudo nano /etc/apache2/sites-available/000-default.conf
Promijenite korijen dokumenta iz /var/www/html
do /var/www/LaravelApp/public
i dodajte sljedeći isječak ispod retka DocumentRoot:
AllowOverride All
Vaš 000-default.conf
sada bi trebao izgledati ovako s nekoliko komentara.
ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log u kombinaciji
Ponovno pokrenite Apache web poslužitelj izvođenjem sljedeće naredbe:
sudo systemctl ponovno pokrenite apache2
Sada idite na svoj preglednik i upišite IP adresu svog Ubuntu 20.04 poslužitelja. Vidjet ćete Laravel početnu stranicu umjesto zadane Apache stranice dobrodošlice.
Pod pretpostavkom da ste do sada slijedili ovaj vodič, trebali biste imati radnu Laravel aplikaciju s MySQL bazom podataka pod nazivom laravel
za to. Od ove točke možete sami početi razvijati svoju Laravel aplikaciju. Da biste saznali više o Laravel okviru i njegovoj upotrebi posjetite stranicu Laravel dokumenata.