Kõik, mida pead teadma Laraveli veebirakenduse juurutamiseks Ubuntu 20.04 LTS masinas
Laravel on väga populaarne avatud lähtekoodiga PHP raamistik, millel on väljendusrikas ja elegantne süntaks, mida kasutatakse kaasaegsete ja kaunite veebirakenduste kujundamiseks. Laraveli eesmärk on vähendada veebiarenduse valu ja muuta see nauditavaks ja loominguliseks kogemuseks, muutes veebiarendajad veebimeistriteks.
Sellest juhendist saate teada, kuidas installida Laravel koos LAMP-virnaga Ubuntu 20.04 serverisse, et teie veebirakendus tööle hakkaks.
Eeltingimused
Selle juhendi järgimiseks vajate Ubuntu 20.04 LTS-i serverit ja peate olema sisse logitud sudo
kasutaja. Enne alustamist värskendage ja uuendage Ubuntu 20.04 pakette, käivitades:
sudo apt värskendus && sudo apt uuendus
LAMP Stacki installimine
LAMP on akronüüm sõnast L inux operatsioonisüsteem, A pache veebiserver, M ySQL andmebaas ja P HP programmeerimiskeel. Oleme juba Ubuntu 20.04-s, mis märgib Linuxi LAMP-virnas. Seega installime ülejäänud kolm paketti, et lõpetada meie Laraveli rakenduse LAMP-pakk.
LAMP-virna installimiseks Ubuntu 20.04 hoidlatesse pole metapaketti saadaval. Kuid me saame kasutada väikest kena funktsiooni asjakohane
paketihaldur nimega ülesanded. Ülesanded tähistatakse saadaoleva ülesande nime abil kadetiga (^
) lisatud sellele.
sudo apt install lamp-server^
See käsk otsib pakettide loendi failidest kõik väljad "Task:" ja installib kõik paketid, mille ülesandeväljal on "lamp-server". Seega installitakse teie Ubuntu serverisse LAMP-pakk, mis koosneb Apache, MySQL ja PHP pakettidest koos kõigi nende sõltuvustega.
Tulemüüri konfigureerimine
Kui olete LAMP-pinu installinud, peate konfigureerima ka lihtsa tulemüüri (UFW) ja muutma selle reegleid, et saaksite Internetist Apache serverile juurde pääseda.
UFW pakub lihtsaid rakendusprofiile, mida saab kasutada reeglite muutmiseks ja liikluse ümberlülitamiseks võrguportides. Käivitage järgmine käsk, et loetleda kõik rakendused, mis pääsevad juurde võrguportidele:
sudo ufw rakenduste loend
Näete sellist väljundit:
Saadaolevad rakendused: Apache Apache Full Apache Secure OpenSSH
Nende profiilide võrgupordid, mis teie Ubuntu 20.04 serveris on avatud, on loetletud allpool:
- Apache: see profiil avab ainult pordi
80
(võimaldab HTTP-liiklust) - Apache täis: see profiil avab mõlemad
80
&443
pordid (võimaldab HTTP- ja HTTPS-liiklust) - Apache Secure: see profiil avab ainult pordi
443
(võimaldab HTTPS-i liiklust) - OpenSSH: see profiil avab pordi
22
mis võimaldab SSH-protokolli
Peate lubama profiili "Apache Full", mis võimaldab Internetist liiklust Apache veebiserverisse. Lisaks peate lubama ka "OpenSSH" profiili, mis võimaldab pordi liiklust 22
(SSH) teie Ubuntu 20.04 serveris. Kui lubate UFW ilma OpenSSH-profiili lubamata, ei saa te oma serveriga SSH-d kasutades ühendust luua.
UFW reegli muutmiseks ja liikluse lubamiseks pordis 80
ja 22
, jookse:
sudo ufw lubab 'Apache Full' sudo ufw luba 'OpenSSH'
Seejärel lubage UFW tulemüür järgmise käsuga:
sudo ufw lubamine
Võite saada viipa, mis ütleb: "käsk võib häirida olemasolevaid ssh-ühendusi. Jätkake toimingutega (y|n)?”. Vajutage Y
jätkamiseks, kuna oleme juba lisanud reegli SSH lubamiseks UFW-s.
Nüüd pääsete juurde Apache vaikeveebilehele, kasutades Internetist oma Ubuntu serveri IP-aadressi. Selleks avage brauser ja tippige URL-i ribale oma Ubuntu 20.04 serveri IP-aadress ja vajutage sisestusklahvi.
//Teie_ubuntu_serveri_ip
See leht kinnitab, et Apache veebiserver töötab õigesti ja UFW reeglid on õigesti seadistatud.
MySQL-i andmebaasi seadistamine Laraveli jaoks
Laravel 7 muudab andmebaasidega suhtlemise äärmiselt lihtsaks erinevates andmebaasi taustaprogrammides, mida see toetab, nagu MySQL versioon 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ ja SQL Server 2017+. Meile on juba installitud uusim MySQL-i pakett lamp-server^
ülesanne. Nii et selles jaotises konfigureerime MySQL-i serveri ja seejärel vaatame, kuidas seadistada Laraveli rakenduse jaoks uus MySQL-i kasutaja ja andmebaas.
Seadistage MySQL
MySQL-i andmebaasiga on kaasas eelinstallitud turbeskript, mida saab kasutada mõne ebaturvalise vaikeseadete eemaldamiseks. Soovitatav on see skript enne Laraveli rakenduse juurutamist käivitada.
sudo mysql_secure_installation
Ülaltoodud käsk käivitab turvaskripti, mis küsib teilt rida küsimusi MySQL-serveri konfigureerimiseks.
Esiteks küsitakse teilt, kas soovite selle seadistada KINNITA PAROOL
sisse panema. See pistikprogramm kontrollib teie parooli ja järjestab need turvalisteks või ebaturvalisteks vastavalt teie peagi valitud parooli kinnitamise poliitika tasemele. Nii et vajuta Y kui soovite selle pistikprogrammi lubada.
Väljund: MySQL-serveri juurutamise turvamine. MySQL-iga ühenduse loomine tühja parooliga. KINNITA PAROOLI KOMPONENTI saab kasutada paroolide testimiseks ja turvalisuse parandamiseks. See kontrollib parooli tugevust ja võimaldab kasutajatel määrata ainult neid paroole, mis on piisavalt turvalised. Kas soovite seadistada komponendi VALIDATE PASSWORD? Jah jaoks vajutage y|Y, ei jaoks mis tahes muud klahvi: Y
Seejärel määrake parooli valideerimise poliitika tase, sisestades ükskõik kumba 0
, 1
või 2
sõltuvalt sellest, kui tugevat soovite oma andmebaaside jaoks parooli luua.
Väljund: Parooli kinnitamise poliitikal on kolm taset: LOW Length >= 8 MEDIUM Length >= 8, numbrid, segasuurused ja erimärgid STRONG Length >= 8, numbrid, segasuurused, erimärgid ja sõnastikufail Palun sisestage 0 = LOW, 1 = KESKMINE ja 2 = TUGEV: 2
Järgmisena palutakse teil sisestada MySQL-i juurkasutaja uus parool. Sisestage oma MySQL-i juure jaoks sobiv parool. Plugin VALIDATE PASSWORD annab teile parooli hinnangulise tugevuse vastavalt teie parooli kinnitamise tasemele. Vajutage Y
sisestatud parooliga jätkamiseks.
Väljund: Seadke siin root parool. Uus parool: Sisestage uus parool uuesti: Parooli hinnanguline tugevus: 100 Kas soovite jätkata antud parooliga? (Jah jaoks vajutage y|Y, ei jaoks mis tahes muud klahvi) : Y
Vajutage Y
Ülejäänud viipade puhul eemaldavad nad mõned anonüümsed kasutajad ja testandmebaasid, keelavad kaugjuurdepääsu ja laadivad uuesti MySQL-serveri sätted. Kui olete lõpetanud, testige oma andmebaasi, käivitades:
sudo mysql
Ülaltoodud käsk avab MySQL-i konsooli, mis loob ühenduse MySQL-i andmebaasiga juur kasutaja. Näete sellist väljundit:
Väljund: Tere tulemast MySQL-i monitori. Käsud lõpevad ; või \g. Teie MySQL-i ühenduse ID on 10 Serveri versioon: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Autoriõigus (c) 2000, 2020, Oracle ja/või selle sidusettevõtted. Kõik õigused kaitstud. Oracle on Oracle Corporationi ja/või selle sidusettevõtete registreeritud kaubamärk. Teised nimed võivad olla nende vastavate omanike kaubamärgid. Tippige "help;" või '\h' abi saamiseks. Praeguse sisendlause kustutamiseks tippige '\c'. mysql>
Võib-olla olete märganud, et te ei pea sisestama MySQL-i juurkasutaja jaoks määratud parooli. Selle põhjuseks on asjaolu, et administratiivse MySQL-i juurkasutaja vaikimisi autentimismeetod on caching_sha2_autentimine
asemel mysql_native_password
meetod, mis kasutab sisselogimiseks parooli.
Nii et vaikimisi saate sisse logida ainult MySQL-i juurkasutajana sudo
lubatud kasutajad, mis toimivad MySQL-serveri täiendava turvalisusena. Kuid MySQL PHP teek ei toeta caching_sha2_autentimine
meetod. Seetõttu peame kasutama mysql_native_password
meetod, kui loome Laravelile uue kasutaja, kuna see kasutab andmebaasiga ühenduse loomiseks ja sellega suhtlemiseks paroole.
Looge uus MySQL-i kasutaja ja andmebaas
MySQL-i juurkasutajate ja testandmebaaside kasutamise asemel on alati hea tava luua spetsiaalselt oma rakenduse jaoks uus kasutaja ja andmebaas. Nii et me seadistame uue MySQL-i kasutaja nimega laravel_kasutaja
ja andmebaasi nimega laravel
. Kui olete õpetust selle punktini järginud, peaks teil olema avatud MySQL-i konsool. Kasutaja loomiseks kutsus laravel_kasutaja
käivitage MySQL-i konsoolis järgmine päring:
Märge: Asendage testpass
allolevas MySQL-päringus tugeva parooliga.
LOO KASUTAJA 'laravel_user'@'%' TUNNISTATUD PARANDIGA mysql_native_password 'testpass'iga;
Järgmisena looge andmebaas nimega laravel
meie Laraveli rakenduse jaoks, käivitades selle päringu:
LOO ANDMEBAAS laravel;
Ainult MySQL-i juurkasutajal on õigused vastloodud andmebaasi laravelile. Andke kõik load üle laravel
andmebaasi laravel_kasutaja
joostes:
GRANT ALL ON laravel.* TO 'laravel_user'@'%';
Niisiis, meil on nüüd uus MySQL-i kasutaja ja andmebaas, väljuge MySQL-i konsoolist, käivitades:
VÄLJU;
Testige oma uut MySQL-i kasutajat, logides sellega sisse MySQL-i konsooli. Selleks käivitage terminalis see käsk:
mysql -u laravel_user -p
Pange tähele -lk
liputage käsus, küsib see teilt parooli, mida kasutasite käsu loomisel laravel_kasutaja
(testpass
päringus). Pärast seda, kui olete MySQL-i konsooli sisse loginud kui laravel_kasutaja
, kinnitage, et kasutajal on juurdepääs laravel
andmebaasi käivitades:
NÄITA ANDMEBAASID;
Väljund: +---------------------+ | Andmebaas | +---------------------+ | laravel | | info_skeem | +--------------------+ 2 rida komplektis (0,01 sek)
Ülaltoodud väljund kinnitab, et MySQL-i kasutaja laravel_kasutaja
omab andmebaasi õigusi laravel
. Väljuge MySQL-i konsoolist, kasutades nuppu VÄLJU;
päring, et saaksime jätkata DemoApp Laraveli rakenduse loomist.
Laraveli installimine
Laraveli raamistik kasutab oma sõltuvuste allalaadimiseks ja haldamiseks Composerit. Seega peame enne Laraveli rakenduse loomist oma Ubuntu 20.04 masinasse installima Composeri.
Installige helilooja
Composer on PHP-i sõltuvushalduri tööriist, mis muudab PHP raamistike ja teekide installimise ja värskendamise palju lihtsamaks. Selles õpetuses uurime, kuidas Composerit kiiresti installida, et saaksime seda kasutada Laraveli raamistiku allalaadimiseks ja haldamiseks.
Peate installima mõned lisapaketid, mida Composer vajab toimimiseks, näiteks php-cli
PHP skriptide käivitamiseks terminalis ja lahti pakkima
et aidata heliloojal paketid välja võtta. Installige need mõlemad, käivitades:
sudo apt install php-cli unzip
Seejärel laadige Composeri globaalseks installimiseks alla Composeri installiskript koos lokk
ja installige see järgmise käsu abil:
curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --failinimi=helilooja
Lõpuks kontrollige, kas helilooja on õigesti installitud, käivitades:
helilooja
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ / /_/ / / / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Helilooja versioon 1.10.8 2020-06- 24 21:23:30 Kasutamine: käsk [valikud] [argumendid]
See väljund kinnitab, et Composer töötab teie Ubuntu 20.04 serveris korralikult, võite hakata seda kasutama PHP raamistike ja teekide installimiseks ja haldamiseks.
Looge Laraveli rakendus
Meil on peaaegu kõik vajalik Laraveli rakenduse loomiseks meie Ubuntu 20.04 serveris, välja arvatud mõned PHP laiendused. Installige need puuduvad laiendused järgmise käsuga:
sudo apt install php-mbstring php-xml php-bcmath php-zip php-json
Nüüd saame installida Laraveli ja luua uue Laraveli rakenduse Composeri abiga. Esiteks veenduge, et olete oma kasutaja kodukataloogis:
cd ~
Seejärel looge helilooja abil uus Laraveli projekt loo-projekt
käsk:
helilooja loo-projekt -- eelista-dist laravel/laravel LaravelApp
Ülaltoodud käsk loob uue projekti nimega LaravelApp ning installib ja konfigureerib teie jaoks ka Laraveli raamistiku. Näete sellele sarnast väljundit:
Väljund: Projekti "Laravel/laravel" loomine aadressil "./LaravelApp" Laraveli/laraveli (v7.12.0) installimine (v7.12.0): allalaadimine (100%) Loodud projekt /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Koostaja hoidlate laadimine koos paketiteabega Sõltuvuste värskendamine (sealhulgas nõutav arendaja) Paketitoimingud: 97 installimist, 0 värskendust, 0 eemaldamist. Voku/portable-ascii (1.5.2) installimine: allalaadimine (100%) Symfony/polyfill-ctype (v1) installimine .17.1): allalaadimine (100%) phpooption/phpooption (1.7.4) installimine: allalaadimine (100%) vlucas/phpdotenv installimine (v4.1.7): allalaadimine (100%) Symfony/css-selectori (v5.1.2) installimine : allalaadimine (100%) ....
Kui installimine on lõppenud, minge rakenduse juurkataloogi ja seejärel käivitage Laravel käsitööline
käsk, et kontrollida, kas kõik komponendid on õigesti installitud:
cd LaravelApp/ php käsitööline
Väljund: Laravel Framework 7.18.0 Kasutamine: käsk [valikud] [argumendid] Valikud: -h, --help Kuva see abiteade -q, --quiet Ära väljasta ühtegi teadet -V, --version Kuva selle rakenduse versioon --ansi Force ANSI väljund --no-ansi Keela ANSI väljund -n, --no-interaction Ärge esitage ühtegi interaktiivset küsimust --env[=ENV] Keskkond, mille käsk peaks töötama all -v|vv|vvv, --verbose Suurenda sõnumite paljusõnalisus: 1 tavalise väljundi jaoks, 2 üksikasjalikuma väljundi jaoks ja 3 silumiseks ....
See väljund kinnitab, et installimine oli edukas ja kõik failid on paigas ning Laraveli käsurea tööriistad töötavad korralikult. Siiski peame veel konfigureerima rakenduse, et seadistada andmebaas ja mõned muud sätted.
Laraveli rakenduse konfigureerimine
Laraveli konfiguratsioonifailid asuvad kataloogis nimega konfig
rakenduse juurkataloogis. Lisaks lõi Laraveli Composeri kaudu installimisel rakenduse juurkataloogis keskkonnafaili nimega ".env". Keskkonnafail sisaldab keskkonnaspetsiifilisi konfiguratsioone ja see on konfiguratsioonikataloogis asuvate tavaliste konfiguratsioonifailide sätete suhtes ülimuslik.
Märkus. Keskkonna konfiguratsioonifail sisaldab tundlikku teavet teie serveri kohta, nagu andmebaasi paroolid, Laraveli rakenduse võtmed jne. Seetõttu ei tohiks seda kunagi avalikult jagada.
Nüüd redigeerime .env
konfiguratsiooni muutmiseks ja andmebaasi mandaatide lisamiseks. Avage fail nanoredaktoriga, käivitades:
nano .env
Selles on palju konfiguratsioonimuutujaid .env
faili. Me ei pea neid kõiki muutma, kuna Composer on enamiku seadeid automaatselt konfigureerinud. Niisiis, siin on nimekiri peamistest konfiguratsioonimuutujatest, mida peate teadma:
APP_NAME
: teavituste ja sõnumite jaoks kasutatav rakenduse nimi, seega määrame selle väärtuseks "LaravelApp".APP_ENV
: seda muutujat kasutatakse praeguse rakenduskeskkonna näitamiseks. Seda saab seadistada kohalikku, arendus-, testimis- või tootmiskeskkonda. Seame selle praegu arenduskeskkonda.APP_KEY
: ainulaadne rakenduse võti, mida kasutatakse veebirakenduse soolade ja räside loomiseks. See genereeritakse automaatselt, kui installite Laraveli Composeri kaudu, nii et seda pole vaja muuta.APP_DEBUG
: selle saab määrata kas tõeseks või vääraks, olenevalt sellest, kas soovite kuvada vigu kliendi poolel. Kui liigute tootmiskeskkonda, määrake see väärtuseks false.APP_URL
: rakenduse alg-URL või IP, muutke see oma domeeninimeks, kui teil on see oma Laraveli rakenduse jaoks, või hoidke see praegu puutumatuna.DB_ANDMEBAAS
: selle andmebaasi nimi, mida soovite Laraveli rakendusega kasutada. Kasutame MySQL-i andmebaasi "Laravel", mille lõime MySQL-i konfigureerimisel.DB_USERNAME
: kasutajanimi andmebaasiga ühenduse loomiseks. Me kasutame loodud MySQL-i kasutajat "laravel_user".DB_PASSWORD
: parool andmebaasiga ühenduse loomiseks.
APP_NAME=LaravelApp
APP_ENV=arengut
APP_KEY=base64:Application_unique_key
APP_DEBUG=tõene APP_URL=//domeen_või_IP
LOG_CHANNEL=virn DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_kasutaja
DB_PASSWORD=testpass
Tehke muudatused .env
faili vastavalt ning kui olete redigeerimise lõpetanud, salvestage ja väljuge failist, kasutades CTRL+X
seejärel vajutage Y
ja kinnitamiseks vajutage sisestusklahvi. Nüüd jääb üle vaid konfigureerida Apache server ja luua meie Laraveli rakenduse jaoks virtuaalne host.
Apache veebiserveri seadistamine
Oleme Laraveli installinud kasutaja kodukataloogi kohalikku kausta. Kuigi see toimib kohaliku arenduse jaoks suurepäraselt, on soovitatav kasutada veebirakenduste kataloogi /var/www
. Põhjus, miks me Laravelit sisse ei installinud /var/www
otse sellepärast, et see kuulub rootile ja koos ei tohiks kasutada Composerit sudo
.
Nii et kasutage mv
käsk Laraveli rakenduste kausta ja selle sisu teisaldamiseks /var/www
:
sudo mv ~/Laravel/ /var/www
LaravelAppi kataloog kuulub kasutajale, nii et saate faile redigeerida ja neid muuta ilma sudo
käsk. Kuid Apache veebiserver vajab juurdepääsu rakenduse vahemälu- ja salvestuskataloogidele, kuna Laravel talletab sellesse rakenduste loodud faile. Muutke nende kaustade omanikuks www-andmed
kasutaja, kes kasutab chown
käsk:
sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache
Pärast nende kataloogide omaniku muutmist lubage Apache mod_rewrite
kuna Laravel nõuab URL-ide õiget teisendamist, et neid saaks tõlgendada tema marsruutimisfunktsiooni kaudu .htaccess
faili.
sudo a2enmod ümberkirjutamine
Järgmiseks peame Laraveli rakenduse jaoks seadistama virtuaalse hosti. Virtuaalse hosti konfiguratsioonid asuvad aadressil /etc/apache2/sites-available
. Laraveli rakenduse juurutamiseks redigeerime vaikimisi virtuaalset hostifaili. Avage vaikimisi virtuaalse hosti konfiguratsioonifail nanoredaktoriga:
sudo nano /etc/apache2/sites-available/000-default.conf
Muutke dokumendi juurt /var/www/html
juurde /var/www/LaravelApp/public
ja lisage DocumentRoot rea alla järgmine jupp:
AllowOverride All
Sinu 000-default.conf
peaks nüüd väheste kommentaaridega välja nägema umbes selline.
ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log kombineeritud
Taaskäivitage Apache veebiserver, käivitades järgmise käsu:
sudo systemctl taaskäivitage apache2
Nüüd minge oma brauserisse ja tippige oma Ubuntu 20.04 serveri IP-aadress. Vaikimisi Apache'i tervituslehe asemel näete Laraveli avalehte.
Eeldades, et olete seda juhendit siiani järginud, peaks teil olema töötav Laraveli rakendus MySQL-i andmebaasiga nimega laravel
selle eest. Sellest hetkest alates saate hakata oma Laraveli rakendust iseseisvalt arendama. Laraveli raamistiku ja selle kasutamise kohta lisateabe saamiseks külastage Laraveli dokumentide lehte.