Kaip įdiegti „Laravel“ Ubuntu 20.04

Viskas, ką reikia žinoti norint įdiegti Laravel žiniatinklio programą Ubuntu 20.04 LTS įrenginyje

Laravel yra labai populiari atvirojo kodo PHP sistema su išraiškinga ir elegantiška sintaksė, naudojama kuriant modernias ir gražias žiniatinklio programas. „Laravel“ siekia panaikinti žiniatinklio kūrimo skausmą ir padaryti tai malonia bei kūrybinga patirtimi, paversdama žiniatinklio kūrėjus žiniatinklio amatininkais.

Šiame vadove sužinosite, kaip įdiegti Laravel su LAMP stack Ubuntu 20.04 serveryje, kad jūsų žiniatinklio programa būtų parengta ir paleista.

Būtinos sąlygos

Norėdami vadovautis šiuo vadovu, jums reikės Ubuntu 20.04 LTS serverio ir būti prisijungę kaip sudo Vartotojas. Prieš pradėdami, atnaujinkite ir atnaujinkite Ubuntu 20.04 paketus paleisdami:

sudo apt naujinimas ir sudo apt atnaujinimas

LAMP Stack diegimas

LAMP yra akronimas L inux operacinė sistema, A pache žiniatinklio serveris, M ySQL duomenų bazė ir P HP programavimo kalba. Mes jau naudojamės Ubuntu 20.04, kuris pažymi Linux LAMP krūvoje. Taigi mes ketiname įdiegti likusius tris paketus, kad užbaigtume Laravel programos LAMP krūvą.

Ubuntu 20.04 saugyklose nėra meta-paketo, kad būtų galima įdiegti LAMP steką. Bet mes galime naudoti mažą tvarkingą funkciją apt paketų tvarkyklė, vadinama užduotimis. Užduotys žymimos turimos užduoties pavadinimu su kariūnu (^) pridedamas prie jo.

sudo apt įdiegti lempos serverį^

Ši komanda ieškos paketų sąrašo failuose visų laukų „Užduotis:“ ir įdiegs visus paketus, kurių užduoties lauke yra „lamp-server“. Taigi jūsų Ubuntu serveryje bus įdiegtas LAMP krūvas, kurį sudaro Apache, MySQL ir PHP paketai su visomis jų priklausomybėmis.

Konfigūruoti ugniasienę

Įdiegę LAMP steką, taip pat turite sukonfigūruoti nesudėtingą užkardą (UFW) ir pakeisti jos taisykles, kad galėtumėte pasiekti Apache serverį iš interneto.

UFW pateikia paprastus programų profilius, kuriuos galima naudoti taisyklėms keisti ir tinklo prievadų srautui perjungti. Vykdykite šią komandą, kad pateiktumėte visas programas, kurios pasiekia tinklo prievadus:

sudo ufw programų sąrašas

Pamatysite tokią išvestį:

Galimos programos: Apache Apache Full Apache Secure OpenSSH

Tinklo prievadai, šie profiliai atidaryti jūsų Ubuntu 20.04 serveryje, yra išvardyti toliau:

  • Apache: šis profilis atidaro tik prievadą 80 (leidžia HTTP srautą)
  • „Apache Full“: šis profilis atidaro abu 80 & 443 prievadai (leidžia HTTP ir HTTPS srautą)
  • Apache Secure: šis profilis atidaro tik prievadą 443 (leidžiamas HTTPS srautas)
  • OpenSSH: Šis profilis atidaro prievadą 22 kuris leidžia naudoti SSH protokolą

Turite įjungti „Apache Full“ profilį, kuris leis srautą į „Apache“ žiniatinklio serverį iš interneto. Be to, taip pat turėsite įjungti „OpenSSH“ profilį, leidžiantį srautą per prievadą 22 (SSH) savo Ubuntu 20.04 serveryje. Jei įjungsite UFW neleisdami „OpenSSH“ profilio, negalėsite prisijungti prie serverio naudodami SSH.

Norėdami pakeisti UFW taisyklę ir leisti srautą prievade 80 ir 22, paleisti:

sudo ufw leisti „Apache Full“ sudo ufw leisti „OpenSSH“

Tada įgalinkite UFW užkardą naudodami šią komandą:

sudo ufw įgalinti

Galite gauti raginimą, kuriame sakoma: „Komanda gali sutrikdyti esamus ssh ryšius. Tęsti operacijas (y|n)?“. Paspauskite Y tęsti, nes jau įtraukėme taisyklę, leidžiančią leisti SSH UFW.

Dabar galite pasiekti numatytąjį „Apache“ tinklalapį naudodami savo Ubuntu serverio IP adresą iš interneto. Norėdami tai padaryti, atidarykite naršyklę ir URL juostoje įveskite savo Ubuntu 20.04 serverio IP adresą ir paspauskite Enter.

//Jūsų_ubuntu_serverio_ip

Šis puslapis patvirtina, kad Apache žiniatinklio serveris veikia tinkamai ir UFW taisyklės nustatytos tinkamai.

„MySQL“ duomenų bazės nustatymas „Laravel“.

„Laravel 7“ labai palengvina sąveiką su duomenų bazėmis įvairiose palaikomose duomenų bazių sistemose, tokiose kaip „MySQL“ 5.6+ versija, „PostgreSQL 9.4+“, „SQLite 3.8.8+“ ir „SQL Server 2017+“. Mes jau turime naujausią MySQL paketą, įdiegtą kartu su lempa-sever^ užduotis. Taigi šiame skyriuje sukonfigūruosime MySQL serverį ir pažiūrėsime, kaip nustatyti naują MySQL vartotoją ir duomenų bazę Laravel programai.

Konfigūruoti MySQL

MySQL duomenų bazėje yra iš anksto įdiegtas saugos scenarijus, kurį galima naudoti kai kuriems nesaugiems numatytiesiems nustatymams pašalinti. Rekomenduojama paleisti šį scenarijų prieš diegiant Laravel programą.

sudo mysql_secure_installation

Aukščiau pateikta komanda vykdys saugos scenarijų, kuris paragins jums keletą klausimų, kaip konfigūruoti MySQL serverį.

Pirmiausia jūsų bus paklausta, ar norite nustatyti PATVIRTINTI SLAPTAŽODĮ prijungti. Šis papildinys patikrina jūsų slaptažodį ir įvertina juos kaip saugius arba nesaugius pagal slaptažodžio patvirtinimo politikos lygį, kurį netrukus pasirinksite. Taigi paspauskite Y jei norite įjungti šį papildinį.

Išvestis: MySQL serverio diegimo apsauga. Prisijungimas prie MySQL naudojant tuščią slaptažodį. PATVIRTINTI SLAPTAŽODŽIO KOMPONENTĄ galima naudoti slaptažodžiams patikrinti ir saugumui pagerinti. Jis tikrina slaptažodžio stiprumą ir leidžia vartotojams nustatyti tik tuos slaptažodžius, kurie yra pakankamai saugūs. Ar norite nustatyti komponentą PATVIRTINTI SLAPTAŽODĮ? Paspauskite y|Y, jei norite pasirinkti Taip, bet kurį kitą klavišą, norėdami atsakyti į Ne: Y

Tada nustatykite slaptažodžio patvirtinimo politikos lygį bet kuriuo įvesdami 0, 1 arba 2 priklausomai nuo to, kokio stiprumo norite sukurti savo duomenų bazių slaptažodį.

Išvestis: Yra trys slaptažodžio patvirtinimo politikos lygiai: LOW Length >= 8 MEDIUM Length >= 8, skaitiniai, mišrūs didžiosios ir mažosios raidės ir specialieji simboliai STIPRUS ilgis >= 8, skaitiniai, mišrios didžiosios ir mažosios raidės, specialieji simboliai ir žodyno failas Įveskite 0 = LOW, 1 = VIDUTINIS ir 2 = STIPRUS: 2

Tada jūsų bus paprašyta įvesti naują MySQL root vartotojo slaptažodį. Įveskite tinkamą MySQL root slaptažodį. Įskiepis PATVIRTINTI SLAPTAŽODĮ pateiks apskaičiuotą slaptažodžio stiprumą pagal slaptažodžio patvirtinimo lygį. Paspauskite Y norėdami tęsti naudodami pateiktą slaptažodį.

Išvestis: Čia nustatykite root slaptažodį. Naujas slaptažodis: Iš naujo įveskite naują slaptažodį: Numatomas slaptažodžio stiprumas: 100 Ar norite tęsti su pateiktu slaptažodžiu? (Paspauskite y|Y, kad pasirinktumėte Taip, bet kurį kitą klavišą, jei norite Ne) : Y

Paspauskite Y likusieji raginimai pašalins kai kuriuos anoniminius vartotojus ir bandomąsias duomenų bazes, išjungs nuotolinį root prisijungimą ir iš naujo įkels naujus MySQL serverio nustatymus. Baigę išbandykite savo duomenų bazę paleisdami:

sudo mysql

Aukščiau pateikta komanda atidarys „MySQL“ konsolę ir prisijungs prie „MySQL“ duomenų bazės kaip šaknis Vartotojas. Pamatysite tokią išvestį:

Išvestis: Sveiki atvykę į MySQL monitorių. Komandos baigiasi ; arba \g. Jūsų MySQL ryšio ID yra 10 Serverio versija: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Autoriaus teisės (c) 2000, 2020, Oracle ir (arba) jos filialai. Visos teisės saugomos. „Oracle“ yra „Oracle Corporation“ ir (arba) su ja susijusių įmonių registruotasis prekės ženklas. Kiti pavadinimai gali būti atitinkamų savininkų prekių ženklai. Įveskite 'help;' arba „\h“, jei reikia pagalbos. Įveskite „\c“, kad išvalytumėte dabartinį įvesties teiginį. mysql>

Galbūt pastebėjote, kad jums nereikėjo įvesti slaptažodžio, kurį nustatėte MySQL root naudotojui. Taip yra todėl, kad numatytasis administracinio MySQL root vartotojo autentifikavimo metodas yra caching_sha2_autentifikavimas vietoj mysql_native_password metodas, kai prisijungiant naudojamas slaptažodis.

Taigi pagal numatytuosius nustatymus galite prisijungti tik kaip MySQL root vartotojas sudo įgalinti vartotojai, kurie veikia kaip papildoma MySQL serverio apsauga. Tačiau MySQL PHP biblioteka nepalaiko caching_sha2_autentifikavimas metodas. Todėl turime naudoti mysql_native_password metodas, kai sukuriame naują Laravel vartotoją, nes jis naudoja slaptažodžius prisijungti ir sąveikauti su duomenų baze.

Sukurkite naują MySQL naudotoją ir duomenų bazę

Visada yra gera praktika sukurti naują vartotoją ir duomenų bazę specialiai jūsų programai, o ne naudoti MySQL šakninių vartotojų ir bandymų duomenų bazes. Taigi mes ketiname sukurti naują MySQL vartotoją, pavadintą laravel_user ir vadinama duomenų bazė laravel. Jei iki šio taško sekėte mokymo programą, turėtumėte atidaryti MySQL konsolę. Norėdami sukurti vartotoją, skambino laravel_user paleiskite šią užklausą MySQL konsolėje:

Pastaba: Pakeiskite testpass žemiau esančioje MySQL užklausoje su stipriu slaptažodžiu.

KURTI VARTOTOJĄ 'laravel_user'@'%' ATPAŽINTAS mysql_native_password 'testpass';

Tada sukurkite duomenų bazę, vadinamą laravel mūsų Laravel programai vykdydami šią užklausą:

KURTI DUOMENŲ BAZĘ laravel;

Tik MySQL root vartotojas turi leidimus naujai sukurtai duomenų bazei laravel. Suteikite visus leidimus per laravel duomenų bazę į laravel_user bėgant:

SUTEIKTI VISKĄ „Laravel.*“ 'laravel_user'@'%';

Taigi, dabar turime naują MySQL vartotoją ir duomenų bazę, išeikite iš MySQL pulto paleisdami:

IŠĖJIMAS;

Išbandykite savo naująjį „MySQL“ vartotoją prisijungę prie „MySQL“ konsolės, kad tai padarytumėte, terminale paleiskite šią komandą:

mysql -u laravel_user -p

Atkreipkite dėmesį į -p komandoje, ji paprašys įvesti slaptažodį, kurį naudojote kurdami laravel_user (testpass užklausoje). Prisijungę prie „MySQL“ konsolės kaip laravel_user, patvirtinkite, kad vartotojas turi prieigą prie laravel duomenų bazę paleisdami:

RODYTI DUOMENŲ BAZES;
Išvestis: +---------------------+ | Duomenų bazė | +---------------------+ | laravel | | informacijos_schema | +--------------------+ 2 eilutės rinkinyje (0,01 sek.)

Aukščiau pateikta produkcija patvirtina, kad MySQL vartotojas laravel_user turi teises į duomenų bazę laravel. Išeikite iš MySQL konsolės naudodami IŠĖJIMAS; užklausą, kad galėtume kurti DemoApp Laravel programą.

„Laravel“ diegimas

„Laravel“ sistema naudoja „Composer“, kad atsisiųstų ir tvarkytų savo priklausomybes. Taigi, norėdami sukurti „Laravel“ programą, savo Ubuntu 20.04 kompiuteryje turime įdiegti „Composer“.

Įdiekite kompozitorių

„Composer“ yra PHP priklausomybės tvarkyklės įrankis, kuris labai palengvina PHP sistemų ir bibliotekų diegimą ir atnaujinimą. Šiame vadove apžvelgsime, kaip greitai įdiegti „Composer“, kad galėtume jį naudoti norėdami atsisiųsti ir valdyti „Laravel“ sistemą.

Turite įdiegti kai kuriuos papildomus paketus, kurių reikia „Composer“, kad veiktų, pvz php-cli paleisti PHP scenarijus terminale ir išpakuokite padėti Kompozitoriui išgauti paketus. Įdiekite juos abu paleisdami:

sudo apt install php-cli išpakuokite

Tada norėdami įdiegti „Composer“ visame pasaulyje, atsisiųskite „Composer“ diegimo scenarijų su garbanoti ir įdiekite naudodami šią komandą:

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

Galiausiai patikrinkite, ar kompozitorius tinkamai įdiegtas, paleisdami:

kompozitorius
 __/ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Kompozitoriaus versija 1.10.8 2020-06- 24 21:23:30 Naudojimas: komanda [parinktys] [argumentai]

Ši išvestis patvirtina, kad kompozitorius tinkamai veikia jūsų Ubuntu 20.04 serveryje, galite pradėti jį naudoti norėdami įdiegti ir valdyti PHP sistemas ir bibliotekas.

Sukurkite Laravel programą

Mes beveik turime viską, ko reikia norint sukurti Laravel programą savo Ubuntu 20.04 serveryje, išskyrus kelis PHP plėtinius. Įdiekite šiuos trūkstamus plėtinius naudodami šią komandą:

sudo apt įdiegti php-mbstring php-xml php-bcmath php-zip php-json

Dabar mes galime įdiegti Laravel ir sukurti naują Laravel programą naudodami Composer. Pirmiausia įsitikinkite, kad esate savo vartotojo namų kataloge:

CD ~

Tada sukurkite naują Laravel projektą naudodami kompozitorių kurti-projektuoti komanda:

kompozitorius kurti-projektas --prefer-dist laravel/laravel LaravelApp

Aukščiau pateikta komanda sukurs naują projektą, pavadintą „LaravelApp“, taip pat įdiegs ir sukonfigūruos „Laravel Framework“ už jus. Pamatysite panašų į šį išvestį:

Išvestis: „Laravel/laravel“ projekto kūrimas adresu „./LaravelApp“ „Laravel/laravel“ (v7.12.0) diegimas „Laravel/laravel“ (v7.12.0): atsisiuntimas (100%) Sukurtas projektas /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Įkeliamos kompozitoriaus saugyklos su informacija apie paketą Priklausomybių atnaujinimas (įskaitant reikalingą kūrėją) Paketo operacijos: 97 diegimai, 0 naujinimų, 0 pašalinimų. Voku/portable-ascii (1.5.2) diegimas: Atsisiuntimas (100%) Diegimas symfony/polyfill-ctype (v1) .17.1): atsisiuntimas (100 %) Diegimas phpooption / phpoption (1.7.4): atsisiuntimas (100 %) Diegimas vlucas/phpdotenv (v4.1.7): atsisiuntimas (100 %) Diegimas symfony/css-selector (v5.1.2) : Atsisiunčiama (100%) ....

Baigę diegti, eikite į programos šakninį katalogą ir paleiskite Laravel amatininkas komanda, kad patikrintų, ar visi komponentai yra tinkamai įdiegti:

cd LaravelApp/ php artisan
Išvestis: Laravel Framework 7.18.0 Naudojimas: komanda [parinktys] [argumentai] Parinktys: -h, --help Rodyti šį pagalbos pranešimą -q, --quiet Neišvesti jokio pranešimo -V, --version Rodyti šios programos versiją --ansi Priversti ANSI išvestį --no-ansi Išjungti ANSI išvestį -n, --no-interaction Neužduoti jokio interaktyvaus klausimo --env[=ENV] Aplinka, kurią komanda turi vykdyti pagal -v|vv|vvv, --verbose Didinti pranešimų išsamumas: 1 normaliam išėjimui, 2 išsamesniam išėjimui ir 3 derinimui ....

Ši išvestis patvirtina, kad diegimas buvo sėkmingas, visi failai yra savo vietose ir Laravel komandinės eilutės įrankiai veikia tinkamai. Tačiau vis tiek turime sukonfigūruoti programą, kad galėtume nustatyti duomenų bazę ir keletą kitų nustatymų.

Konfigūruokite Laravel programą

Laravel konfigūracijos failai yra kataloge, vadinamame konfig programos šakniniame kataloge. Be to, kai įdiegėme Laravel per Composer, programos šakniniame kataloge jis sukūrė aplinkos failą pavadinimu „.env“. Aplinkos faile yra konkrečios aplinkos konfigūracijos ir jis turi viršenybę įprastų konfigūracijos failų, esančių konfigūracijos kataloge, parametrams.

Pastaba: Aplinkos konfigūracijos faile yra neskelbtinos informacijos apie jūsų serverį, pvz., duomenų bazės slaptažodžius, Laravel taikomųjų programų raktus ir t. t. Todėl jis niekada neturėtų būti bendrinamas viešai.

Dabar mes redaguosime .env failą, kad pakeistumėte konfigūraciją ir pridėtumėte prie jo duomenų bazės kredencialus. Atidarykite failą naudodami nano redaktorių paleisdami:

nano .env

Čia yra daug konfigūracijos kintamųjų .env failą. Mums nereikia keisti kiekvieno iš jų, nes kompozitorius daugumą nustatymų sukonfigūravo automatiškai. Taigi, čia yra kai kurių pirminių konfigūracijos kintamųjų, kuriuos turite žinoti, sąrašas:

  • APP_NAME: pranešimams ir pranešimams naudojamas programos pavadinimas, todėl nustatysime jį į „LaravelApp“.
  • APP_ENV: Šis kintamasis naudojamas dabartinei programos aplinkai nurodyti. Jis gali būti nustatytas vietinėje, kūrimo, testavimo ar gamybos aplinkoje. Šiuo metu ketiname jį pritaikyti kūrimo aplinkai.
  • APP_KEY: unikalus programos raktas, naudojamas kuriant žiniatinklio programos druskas ir maišas. Jis automatiškai sugeneruojamas, kai įdiegiate Laravel per Composer, todėl nereikia to keisti.
  • APP_DEBUG: Jis gali būti nustatytas kaip teisingas arba klaidingas, atsižvelgiant į tai, ar norite rodyti klaidas kliento pusėje. Kai pereinate į gamybos aplinką, nustatykite ją į false.
  • APP_URL: Bazinis programos URL arba IP, pakeiskite jį į savo domeno pavadinimą, jei tokį turite savo Laravel programai, arba kol kas nepalieskite.
  • DB_DATABASE: duomenų bazės, kurią norite naudoti su Laravel programa, pavadinimas. Naudosime MySQL duomenų bazę „laravel“, kurią sukūrėme konfigūruodami MySQL.
  • DB_USERNAME: Vartotojo vardas prisijungti prie duomenų bazės. Mes naudosime savo sukurtą MySQL vartotoją „laravel_user“.
  • DB_PASSWORD: prisijungimo prie duomenų bazės slaptažodis.
 APP_NAME= LaravelApp APP_ENV= plėtra APP_KEY= base64:Application_unique_key APP_DEBUG=true APP_URL= //domenas_arba_IP LOG_CHANNEL=dėklas DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PASSWORD= testpass

Atlikite pakeitimus .env atitinkamai failą ir baigę redaguoti išsaugokite ir išeikite iš failo naudodami CTRL + X tada paspauskite Y ir paspauskite Enter, kad patvirtintumėte. Dabar belieka sukonfigūruoti „Apache“ serverį ir sukurti virtualų pagrindinį kompiuterį mūsų „Laravel“ programai.

„Apache“ žiniatinklio serverio nustatymas

Įdiegėme „Laravel“ į vietinį vartotojo namų katalogo aplanką. Nors tai puikiai tinka vietiniam vystymuisi, rekomenduojama turėti žiniatinklio programų katalogą /var/www. Priežastis, kodėl neįdiegėme Laravel /var/www tiesiogiai yra todėl, kad jis priklauso root ir Composer neturėtų būti naudojamas sudo.

Taigi naudokite mv komandą, kad perkeltumėte Laravel programos aplanką ir jo turinį /var/www:

sudo mv ~/Laravel/ /var/www

„LaravelApp“ katalogas priklauso vartotojui, todėl vis tiek galite redaguoti ir keisti failus nenaudodami sudo komandą. Tačiau „Apache“ žiniatinklio serveriui reikia prieigos prie programos talpyklos ir saugojimo katalogų, nes „Laravel“ jame saugo programų sugeneruotus failus. Pakeiskite šių aplankų savininką į www-duomenys vartotojas, naudojantis chown komanda:

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

Pakeitę šių katalogų savininką, įgalinkite „Apache“. mod_rewrite kadangi Laravel reikalauja tinkamai transformuoti URL, kad būtų interpretuojami naudojant maršruto parinkimo funkciją per .htaccess failą.

sudo a2enmod perrašyti

Tada turime nustatyti „Laravel“ programos virtualų pagrindinį kompiuterį. Virtualios prieglobos konfigūracijos yra adresu /etc/apache2/sites-available. Mes ketiname redaguoti numatytąjį virtualaus pagrindinio kompiuterio failą, kad įdiegtume Laravel programą. Atidarykite numatytąjį virtualaus pagrindinio kompiuterio konfigūracijos failą naudodami nano redaktorių:

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

Pakeiskite dokumento šaknį iš /var/www/html į /var/www/LaravelApp/public ir po eilute DocumentRoot pridėkite šį fragmentą:

 AllowOverride All 

Tavo 000-default.conf dabar turėtų atrodyti maždaug taip su mažais komentarais.

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

Iš naujo paleiskite „Apache“ žiniatinklio serverį vykdydami šią komandą:

sudo systemctl iš naujo paleiskite apache2

Dabar eikite į savo naršyklę ir įveskite savo Ubuntu 20.04 serverio IP adresą. Pamatysite Laravel pradžios puslapį, o ne numatytąjį Apache pasveikinimo puslapį.

Darant prielaidą, kad iki šiol laikotės šio vadovo, turėtumėte turėti veikiančią Laravel programą su MySQL duomenų baze, vadinama laravel už jį. Nuo šio momento galite pradėti kurti savo Laravel programą patys. Norėdami sužinoti daugiau apie Laravel sistemą ir jos naudojimą, apsilankykite Laravel dokumentų puslapyje.