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.