Laraveli installimine Ubuntu 20.04-sse

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.