Všetko, čo potrebujete vedieť na nasadenie webovej aplikácie Laravel na počítači Ubuntu 20.04 LTS
Laravel je veľmi populárny open-source PHP framework s výraznou a elegantnou syntaxou používanou na navrhovanie moderných a krásnych webových aplikácií. Cieľom Laravelu je zbaviť sa bolesti pri vývoji webu a urobiť z neho príjemný a kreatívny zážitok, ktorý premieňa vývojárov webu na webových remeselníkov.
V tejto príručke sa naučíte, ako nainštalovať Laravel so zásobníkom LAMP na server Ubuntu 20.04, aby ste mohli spustiť svoju webovú aplikáciu.
Predpoklady
Ak chcete postupovať podľa tohto sprievodcu, budete potrebovať server Ubuntu 20.04 LTS a byť prihlásený ako sudo
užívateľ. Skôr ako začneme, aktualizujte a inovujte balíky Ubuntu 20.04 spustením:
sudo apt aktualizácia && sudo apt upgrade
Inštalácia LAMP Stack
LAMP je skratka pre L operačný systém inux, A Pache webový server, M databázy ySQL a P programovací jazyk HP. Už sme na Ubuntu 20.04, ktorý zaškrtáva Linux v zásobníku LAMP. Takže nainštalujeme zvyšné tri balíčky, aby sme dokončili zásobník LAMP pre našu aplikáciu Laravel.
Nie je k dispozícii žiadny meta-balík na inštaláciu zásobníka LAMP v úložiskách Ubuntu 20.04. Ale môžeme použiť úhľadnú malú vlastnosť apt
správca balíkov nazývaný úlohy. Úlohy sú označené názvom dostupnej úlohy s kadetom (^
), ktorý je k nemu pripojený.
sudo apt install lamp-server^
Tento príkaz vyhľadá v súboroch so zoznamom balíkov všetky polia „Úloha:“ a nainštaluje všetky balíky s „lamp-server“ v poli úlohy. Takže zásobník LAMP pozostávajúci z balíkov Apache, MySQL a PHP so všetkými ich závislosťami bude nainštalovaný na váš server Ubuntu.
Nakonfigurujte bránu firewall
Po nainštalovaní zásobníka LAMP musíte tiež nakonfigurovať nekomplikovaný firewall (UFW) a zmeniť jeho pravidlá, aby ste mali prístup k serveru Apache z internetu.
UFW poskytuje jednoduché aplikačné profily, ktoré možno použiť na zmenu pravidiel a prepínanie prevádzky na sieťových portoch. Spustite nasledujúci príkaz a vypíšte všetky aplikácie, ktoré pristupujú k sieťovým portom:
zoznam aplikácií sudo ufw
Uvidíte takýto výstup:
Dostupné aplikácie: Apache Apache Full Apache Secure OpenSSH
Sieťové porty, ktoré tieto profily otvárajú na vašom serveri Ubuntu 20.04, sú uvedené nižšie:
- Apache: Tento profil otvára iba port
80
(povoľuje prenos HTTP) - Apache Full: Tento profil otvára oboje
80
&443
porty (umožňujú prenos HTTP a HTTPS) - Apache Secure: Tento profil otvára iba port
443
(povoľuje prenos HTTPS) - OpenSSH: Tento profil otvára port
22
ktorý umožňuje protokol SSH
Musíte povoliť profil „Apache Full“, ktorý umožní prenos na webový server Apache z internetu. Okrem toho budete musieť povoliť profil „OpenSSH“, ktorý umožňuje prenos na porte 22
(SSH) na vašom serveri Ubuntu 20.04. Ak povolíte UFW bez povolenia profilu „OpenSSH“, nebudete sa môcť pripojiť k svojmu serveru pomocou SSH.
Ak chcete zmeniť pravidlo UFW a povoliť prenos na porte 80
a 22
, spustiť:
sudo ufw povoliť 'Apache Full' sudo ufw povoliť 'OpenSSH'
Potom povoľte bránu firewall UFW pomocou nasledujúceho príkazu:
povoliť sudo ufw
Môžete dostať výzvu s textom „príkaz môže narušiť existujúce pripojenia ssh. Pokračovať v operáciách (y|n)?”. Stlačte tlačidlo Y
pokračovať, pretože sme už pridali pravidlo na povolenie SSH v UFW.
Teraz môžete pristupovať k predvolenej webovej stránke Apache pomocou adresy IP vášho servera Ubuntu z internetu. Ak to chcete urobiť, otvorte prehliadač a do panela s adresou URL zadajte adresu IP vášho servera Ubuntu 20.04 a stlačte kláves Enter.
//IP vášho_ubuntu_server_ip
Táto stránka potvrdzuje, že webový server Apache beží správne a pravidlá UFW sú správne nastavené.
Nastavenie databázy MySQL pre Laravel
Laravel 7 mimoriadne zjednodušuje interakciu s databázami v rámci rôznych databázových backendov, ktoré podporuje, ako sú MySQL verzie 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ a SQL Server 2017+. Už máme nainštalovaný najnovší balík MySQL s lamp-sever^
úloha. V tejto časti teda nakonfigurujeme server MySQL a potom sa pozrieme na to, ako nastaviť nového používateľa MySQL a databázu pre aplikáciu Laravel.
Nakonfigurujte MySQL
Databáza MySQL sa dodáva s predinštalovaným bezpečnostným skriptom, ktorý možno použiť na odstránenie niektorých nezabezpečených predvolených nastavení. Odporúča sa spustiť tento skript pred nasadením vašej aplikácie Laravel.
sudo mysql_secure_installation
Vyššie uvedený príkaz spustí bezpečnostný skript, ktorý vás vyzve na sériu otázok na konfiguráciu servera MySQL.
Najprv sa vás spýta, či chcete nastaviť OVERENIE HESLA
zapojiť. Tento doplnok skontroluje vaše heslo a zaradí ho ako bezpečné alebo neisté na základe úrovne politiky overovania hesla, ktorú si čoskoro vyberiete. Takže stlačte Y ak chcete povoliť tento doplnok.
Výkon: Zabezpečenie nasadenia servera MySQL. Pripojenie k MySQL pomocou prázdneho hesla. KOMPONENTU VALIDATE PASSWORD COMPONENT možno použiť na testovanie hesiel a zlepšenie zabezpečenia. Kontroluje silu hesla a umožňuje používateľom nastaviť iba tie heslá, ktoré sú dostatočne bezpečné. Chcete nastaviť komponent VALIDATE PASSWORD? Stlačte y|Y pre Áno, akékoľvek iné tlačidlo pre Nie: Y
Potom nastavte úroveň politiky overenia hesla buď zadaním 0
, 1
alebo 2
v závislosti od toho, aké silné chcete vytvoriť heslo pre svoje databázy.
Výkon: Existujú tri úrovne politiky overovania hesla: NÍZKA Dĺžka >= 8 STREDNÁ Dĺžka >= 8, číslice, malé a veľké písmená a špeciálne znaky SILNÉ Dĺžka >= 8, číslice, malé a veľké písmená, špeciálne znaky a súbor slovníka Zadajte 0 = NÍZKA, 1 = STREDNÁ a 2 = SILNÁ: 2
Ďalej sa zobrazí výzva na zadanie nového hesla pre používateľa root MySQL. Zadajte vhodné heslo pre váš root MySQL. Doplnok VALIDATE PASSWORD vám poskytne odhadovanú silu vášho hesla podľa úrovne overenia hesla. Stlačte tlačidlo Y
pokračovať s heslom, ktoré ste poskytli.
Výkon: Tu nastavte heslo pre root. Nové heslo: Znova zadajte nové heslo: Odhadovaná sila hesla: 100 Chcete pokračovať so zadaným heslom? (Stlačte y|Y pre Áno, akékoľvek iné tlačidlo pre Nie) : Y
Stlačte tlačidlo Y
pre zvyšok výziev odstránia niektorých anonymných používateľov a testovacie databázy, zakážu vzdialené prihlásenie root a znova načítajú nové nastavenia pre server MySQL. Keď skončíte, otestujte svoju databázu spustením:
sudo mysql
Vyššie uvedený príkaz otvorí konzolu MySQL a pripojí sa k databáze MySQL ako koreň užívateľ. Uvidíte takýto výstup:
Výkon: Vitajte v monitore MySQL. Príkazy končia na ; alebo \g. Vaše ID pripojenia k MySQL je 10 Verzia servera: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle a/alebo jej pridružené spoločnosti. Všetky práva vyhradené. Oracle je registrovaná ochranná známka spoločnosti Oracle Corporation a/alebo jej pridružených spoločností. Ostatné názvy môžu byť ochrannými známkami ich príslušných vlastníkov. Napíšte 'help;' alebo '\h' o pomoc. Ak chcete vymazať aktuálny vstupný príkaz, zadajte '\c'. mysql>
Možno ste si všimli, že ste nemuseli zadávať heslo, ktoré ste nastavili pre koreňového používateľa MySQL. Je to preto, že predvolená metóda autentifikácie pre administrátora MySQL root je caching_sha2_authentication
namiesto toho mysql_native_password
metóda, ktorá používa na prihlásenie heslo.
V predvolenom nastavení sa teda môžete prihlásiť iba ako používateľ root v MySQL sudo
povolených používateľov, ktorí slúžia ako dodatočné zabezpečenie servera MySQL. Ale MySQL PHP knižnica nepodporuje caching_sha2_authentication
metóda. Preto musíme použiť mysql_native_password
keď vytvoríme nového používateľa pre Laravel, pretože používa heslá na pripojenie a interakciu s databázou.
Vytvorte nového používateľa a databázu MySQL
Vždy je dobrou praxou vytvoriť nového používateľa a databázu špeciálne pre vašu aplikáciu namiesto použitia koreňových užívateľských a testovacích databáz MySQL. Ideme teda nastaviť nového používateľa MySQL s názvom laravel_user
a databáza tzv laravel
. Ak ste postupovali podľa návodu až sem, mali by ste mať otvorenú konzolu MySQL. Na vytvorenie používateľa tzv laravel_user
spustite nasledujúci dotaz v konzole MySQL:
Poznámka: Vymeňte testpass
v nižšie uvedenom dopyte MySQL so silným heslom.
VYTVORIŤ POUŽÍVATEĽA 'laravel_user'@'%' IDENTIFIKOVANÉHO S mysql_native_password OD 'testpass';
Ďalej vytvorte databázu tzv laravel
pre našu aplikáciu Laravel spustením tohto dotazu:
VYTVORIŤ DATABÁZU laravel;
Povolenia k novovytvorenej databáze laravel má iba používateľ root MySQL. Udeľte všetky povolenia pre laravel
databázy do laravel_user
behom:
GRANT ALL ON laravel.* TO 'laravel_user'@'%';
Takže teraz máme nového používateľa MySQL a databázu, ukončite konzolu MySQL spustením:
VÝCHOD;
Otestujte svojho nového používateľa MySQL tak, že sa s ním prihlásite do konzoly MySQL, aby ste tak urobili, spustite tento príkaz v termináli:
mysql -u laravel_user -p
Všimnite si -p
flag v príkaze, zobrazí sa výzva na zadanie hesla, ktoré ste použili pri vytváraní laravel_user
(testpass
v dopyte). Po prihlásení do konzoly MySQL ako laravel_user
potvrďte, že používateľ má prístup k laravel
databázy spustením:
ZOBRAZIŤ DATABÁZY;
Výkon: +---------------------+ | Databáza | +---------------------+ | laravel | | informačná_schéma | +--------------------+ 2 riadky v súprave (0,01 s)
Vyššie uvedený výstup potvrdzuje, že používateľ MySQL laravel_user
má oprávnenia k databáze laravel
. Ukončite konzolu MySQL pomocou príkazu VÝCHOD;
dotaz, aby sme mohli pristúpiť k vytvoreniu aplikácie DemoApp Laravel.
Inštalácia Laravelu
Rámec Laravel využíva Composer na stiahnutie a správu jeho závislostí. Predtým, ako vytvoríme aplikáciu Laravel, musíme nainštalovať Composer na náš počítač Ubuntu 20.04.
Nainštalujte Composer
Composer je nástroj na správu závislostí pre PHP, vďaka ktorému je inštalácia a aktualizácia rámcov a knižníc PHP oveľa jednoduchšia. V tomto návode sa pozrieme na to, ako rýchlo nainštalovať Composer, aby sme ho mohli použiť na stiahnutie a správu rámca Laravel.
Musíte nainštalovať nejaké dodatočné balíky, ktoré Composer vyžaduje na fungovanie, ako napr php-cli
spúšťať PHP skripty v termináli a rozopnúť zips
pomôcť Composerovi extrahovať balíčky. Nainštalujte ich obe spustením:
sudo apt install php-cli rozbaliť
Potom, ak chcete nainštalovať Composer globálne, stiahnite si inštalačný skript Composer s zvlniť
a nainštalujte ho pomocou nasledujúceho príkazu:
curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Nakoniec skontrolujte, či sa skladateľ správne nainštaloval spustením:
skladateľ
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / / /__ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Verzia skladateľa 1.10.8 2020-06- 24 21:23:30 Použitie: príkaz [možnosti] [argumenty]
Tento výstup potvrdzuje, že Composer funguje správne na vašom serveri Ubuntu 20.04, môžete ho začať používať na inštaláciu a správu rámcov a knižníc PHP.
Vytvorte aplikáciu Laravel
Máme takmer všetko potrebné na vytvorenie aplikácie Laravel na našom serveri Ubuntu 20.04 okrem niekoľkých rozšírení PHP. Nainštalujte tieto chýbajúce rozšírenia pomocou nasledujúceho príkazu:
sudo apt install php-mbstring php-xml php-bcmath php-zip php-json
Teraz môžeme nainštalovať Laravel a vytvoriť novú aplikáciu Laravel s pomocou Composer. Najprv sa uistite, že ste v domovskom adresári používateľa:
cd ~
Potom vytvorte nový projekt Laravel pomocou aplikácie Composer's vytvoriť-projekt
príkaz:
skladateľ vytvoriť-projekt --prefer-dist laravel/laravel LaravelApp
Vyššie uvedený príkaz vytvorí nový projekt s názvom LaravelApp a tiež vám nainštaluje a nakonfiguruje Laravel Framework. Uvidíte výstup podobný tomuto:
Výkon: Vytvorenie projektu "laravel/laravel" na "./LaravelApp" Inštalácia laravel/laravel (v7.12.0) Inštalácia laravel/laravel (v7.12.0): Sťahovanie (100%) Vytvorený projekt v /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Načítavanie archívov skladateľov s informáciami o balíkoch Aktualizácia závislostí (vrátane require-dev) Operácie balíka: 97 inštalácií, 0 aktualizácií, 0 odstránení Inštalácia voku/portable-ascii (1.5.2): Sťahovanie (100 %) Inštalácia symfony/polyfill-ctype (v1 .17.1): Sťahovanie (100 %) Inštalácia phpoption/phpoption (1.7.4): Sťahovanie (100 %) Inštalácia vlucas/phpdotenv (v4.1.7): Sťahovanie (100 %) Inštalácia symfony/css-selector (v5.1.2) : Sťahovanie (100%) ....
Po dokončení inštalácie prejdite do koreňového adresára aplikácie a potom spustite Laravel's remeselník
príkaz na overenie, či sú všetky komponenty správne nainštalované:
cd LaravelApp/ php artisan
Výkon: Laravel Framework 7.18.0 Použitie: príkaz [možnosti] [argumenty] Možnosti: -h, --help Zobraziť túto pomocnú správu -q, --quiet Nevydávať žiadnu správu -V, --version Zobraziť verziu tejto aplikácie --ansi Vynútiť výstup ANSI --no-ansi Zakázať výstup ANSI -n, --no-interakcia Neklásť žiadnu interaktívnu otázku --env[=ENV] Prostredie, v ktorom by mal príkaz bežať pod -v|vv|vvv, --verbose Zvýšiť podrobnosť správ: 1 pre normálny výstup, 2 pre podrobnejší výstup a 3 pre ladenie ....
Tento výstup potvrdzuje, že inštalácia bola úspešná a všetky súbory sú na svojom mieste a nástroje príkazového riadka Laravel fungujú správne. Musíme však ešte nakonfigurovať aplikáciu na nastavenie databázy a niekoľko ďalších nastavení.
Nakonfigurujte aplikáciu Laravel
Konfiguračné súbory Laravel sa nachádzajú v adresári s názvom config
v koreňovom adresári aplikácie. Okrem toho, keď sme nainštalovali Laravel cez Composer, vytvoril súbor prostredia s názvom „.env“ v koreňovom adresári aplikácie. Súbor prostredia obsahuje konfigurácie špecifické pre dané prostredie a má prednosť pred nastaveniami v bežných konfiguračných súboroch umiestnených v adresári config.
Poznámka: Konfiguračný súbor prostredia obsahuje citlivé informácie o vašom serveri, ako sú heslá databázy, kľúče aplikácie Laravel atď. Preto by sa nikdy nemal zdieľať verejne.
Teraz upravíme .env
súbor zmeniť konfiguráciu a pridať doň poverenia databázy. Otvorte súbor pomocou editora nano spustením:
nano .env
V tomto je veľa konfiguračných premenných .env
súbor. Nemusíme meniť každú z nich, pretože Composer nakonfiguroval väčšinu nastavení automaticky. Tu je zoznam niektorých primárnych konfiguračných premenných, o ktorých musíte vedieť:
APP_NAME
: Názov aplikácie používaný pre upozornenia a správy, takže ho nastavíme na „LaravelApp“.APP_ENV
: Táto premenná sa používa na označenie aktuálneho prostredia aplikácie. Môže byť nastavený na lokálne, vývojové, testovacie alebo produkčné prostredie. Zatiaľ ho nastavíme do vývojového prostredia.APP_KEY
: Unikátny aplikačný kľúč používaný na vytváranie solí a hashov pre webovú aplikáciu. Generuje sa automaticky pri inštalácii Laravel cez Composer, takže to nie je potrebné meniť.APP_DEBUG
: Dá sa nastaviť na hodnotu true alebo false, v závislosti od toho, či chcete zobrazovať chyby na strane klienta. Keď sa presuniete do produkčného prostredia, nastavte ho na hodnotu false.APP_URL
: Základná adresa URL alebo adresa IP aplikácie, zmeňte ju na názov svojej domény, ak ju máte pre aplikáciu Laravel, alebo ju zatiaľ ponechajte nedotknutú.DB_DATABASE
: Názov databázy, ktorú chcete použiť s aplikáciou Laravel. Budeme používať databázu MySQL „laravel“, ktorú sme vytvorili pri konfigurácii MySQL.DB_USERNAME
: Používateľské meno na pripojenie k databáze. Budeme používať používateľa MySQL „laravel_user“, ktorého sme vytvorili.DB_PASSWORD
: Heslo na pripojenie k databáze.
APP_NAME=LaravelApp
APP_ENV=rozvoj
APP_KEY=base64:Application_unique_key
APP_DEBUG=pravda APP_URL=//domena_alebo_IP
LOG_CHANNEL=zásobník DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user
DB_PASSWORD=testpass
Vykonajte zmeny v .env
súbor podľa toho a po dokončení úprav uložte a ukončite súbor pomocou CTRL+X
potom stlačte Y
a potvrďte stlačením klávesu Enter. Teraz už zostáva len nakonfigurovať server Apache a vytvoriť virtuálneho hostiteľa pre našu aplikáciu Laravel.
Nastavenie webového servera Apache
Laravel sme nainštalovali do lokálneho priečinka domovského adresára používateľa. Aj keď to funguje úplne dobre pre miestny vývoj, odporúča sa mať adresár webovej aplikácie umiestnený v /var/www
. Dôvod, prečo sme nenainštalovali Laravel /var/www
priamo je, pretože je vo vlastníctve root a Composer by sa nemal používať s sudo
.
Takže použite mv
príkaz na presun priečinka aplikácie Laravel a jeho obsahu /var/www
:
sudo mv ~/Laravel/ /var/www
Adresár LaravelApp je vo vlastníctve používateľa, takže stále môžete upravovať a meniť súbory bez použitia sudo
príkaz. Webový server Apache však potrebuje prístup k vyrovnávacej pamäti a adresárom úložiska aplikácie, pretože Laravel v ňom ukladá súbory generované aplikáciou. Zmeňte vlastníka týchto priečinkov na www-údaje
používateľ pomocou chown
príkaz:
sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache
Po zmene vlastníka týchto adresárov povoľte Apache mod_rewrite
ako to vyžaduje Laravel, aby správne transformoval adresy URL, aby ich mohla interpretovať funkcia smerovania cez .htaccess
súbor.
prepíšte sudo a2enmod
Ďalej musíme nastaviť virtuálneho hostiteľa pre aplikáciu Laravel. Konfigurácie virtuálneho hostiteľa sa nachádzajú na adrese /etc/apache2/sites-available
. Chystáme sa upraviť predvolený súbor virtuálneho hostiteľa na nasadenie aplikácie Laravel. Otvorte predvolený konfiguračný súbor virtuálneho hostiteľa pomocou editora nano:
sudo nano /etc/apache2/sites-available/000-default.conf
Zmeňte koreň dokumentu z /var/www/html
do /var/www/LaravelApp/public
a pridajte nasledujúci úryvok pod riadok DocumentRoot:
AllowOverride All
Váš 000-default.conf
by teraz malo vyzerať nejako takto s niekoľkými komentármi.
ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log kombinované
Reštartujte webový server Apache spustením nasledujúceho príkazu:
sudo systemctl reštartujte apache2
Teraz prejdite do prehliadača a zadajte IP adresu vášho servera Ubuntu 20.04. Namiesto predvolenej uvítacej stránky Apache uvidíte úvodnú stránku Laravel.
Za predpokladu, že ste doteraz postupovali podľa tohto návodu, mali by ste mať fungujúcu aplikáciu Laravel s databázou MySQL s názvom laravel
pre to. Od tohto bodu môžete začať svojpomocne vyvíjať svoju aplikáciu Laravel. Ak sa chcete dozvedieť viac o rámci Laravel a jeho použití, navštívte stránku dokumentov Laravel.