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.