Vše, co potřebujete vědět k nasazení webové aplikace Laravel na počítači Ubuntu 20.04 LTS
Laravel je velmi populární open-source PHP framework s výraznou a elegantní syntaxí používanou k navrhování moderních a krásných webových aplikací. Laravel si klade za cíl zbavit se bolesti při vývoji webu a učinit z něj příjemný a kreativní zážitek, který z webových vývojářů udělá webové řemeslníky.
V této příručce se naučíte, jak nainstalovat Laravel se zásobníkem LAMP na server Ubuntu 20.04, abyste zprovoznili svou webovou aplikaci.
Předpoklady
Abyste mohli postupovat podle tohoto průvodce, budete potřebovat server Ubuntu 20.04 LTS a být přihlášeni jako sudo
uživatel. Než začneme, aktualizujte a upgradujte balíčky Ubuntu 20.04 spuštěním:
aktualizace sudo apt && upgrade sudo apt
Instalace LAMP Stack
LAMP je zkratka pro L operační systém inux, A Pache webový server, M databáze ySQL a P programovací jazyk HP. Již jsme na Ubuntu 20.04, který zaškrtává Linux v zásobníku LAMP. Chystáme se tedy nainstalovat zbývající tři balíčky, abychom dokončili zásobník LAMP pro naši aplikaci Laravel.
Není k dispozici žádný meta-balíček pro instalaci zásobníku LAMP v úložištích Ubuntu 20.04. Ale můžeme použít úhlednou malou vlastnost apt
správce balíčků s názvem úkoly. Úkoly jsou označeny pomocí názvu dostupného úkolu s kadetem (^
) k němu připojené.
sudo apt install lamp-server^
Tento příkaz vyhledá v souborech se seznamem balíčků všechna pole „Task:“ a nainstaluje všechny balíčky s „lamp-server“ v jejich poli úlohy. Na váš server Ubuntu se tedy nainstaluje zásobník LAMP sestávající z balíčků Apache, MySQL a PHP se všemi jejich závislostmi.
Nakonfigurujte bránu firewall
Jakmile nainstalujete zásobník LAMP, musíte také nakonfigurovat nekomplikovaný firewall (UFW) a změnit jeho pravidla, abyste měli přístup k serveru Apache z internetu.
UFW poskytuje jednoduché aplikační profily, které lze použít ke změně pravidel a přepínání provozu na síťových portech. Spuštěním následujícího příkazu zobrazíte seznam všech aplikací, které přistupují k síťovým portům:
seznam aplikací sudo ufw
Uvidíte výstup, jako je tento:
Dostupné aplikace: Apache Apache Full Apache Secure OpenSSH
Síťové porty, které tyto profily otevírají na vašem serveru Ubuntu 20.04, jsou uvedeny níže:
- Apache: Tento profil otevírá pouze port
80
(povoluje provoz HTTP) - Apache Full: Tento profil otevře oba
80
&443
porty (umožňují provoz HTTP a HTTPS) - Apache Secure: Tento profil otevírá pouze port
443
(povoluje provoz HTTPS) - OpenSSH: Tento profil otevírá port
22
který umožňuje protokol SSH
Musíte povolit profil „Apache Full“, který umožní provoz na webový server Apache z internetu. Kromě toho budete také muset povolit profil „OpenSSH“, který umožňuje provoz na portu 22
(SSH) na vašem serveru Ubuntu 20.04. Pokud povolíte UFW bez povolení profilu „OpenSSH“, nebudete se moci připojit k vašemu serveru pomocí SSH.
Chcete-li změnit pravidlo UFW a povolit provoz na portu 80
a 22
, spustit:
sudo ufw povolit 'Apache Full' sudo ufw povolit 'OpenSSH'
Poté povolte bránu firewall UFW pomocí následujícího příkazu:
povolit sudo ufw
Může se zobrazit výzva, že „příkaz může narušit existující připojení ssh. Pokračovat v operacích (y|n)?”. lis Y
pokračovat, protože jsme již přidali pravidlo pro povolení SSH v UFW.
Nyní můžete přistupovat k výchozí webové stránce Apache pomocí IP adresy vašeho serveru Ubuntu z internetu. Chcete-li tak učinit, otevřete prohlížeč a do řádku URL zadejte IP adresu vašeho serveru Ubuntu 20.04 a stiskněte Enter.
//IP vašeho_ubuntu_serveru
Tato stránka potvrzuje, že webový server Apache běží správně a pravidla UFW jsou správně nastavena.
Nastavení databáze MySQL pro Laravel
Laravel 7 velmi usnadňuje interakci s databázemi napříč různými databázovými backendy, které podporuje, jako je MySQL verze 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ a SQL Server 2017+. Již máme nainstalovaný nejnovější balíček MySQL s lamp-sever^
úkol. V této části tedy nakonfigurujeme server MySQL a poté se podíváme na to, jak nastavit nového uživatele a databázi MySQL pro aplikaci Laravel.
Nakonfigurujte MySQL
Databáze MySQL je dodávána s předinstalovaným bezpečnostním skriptem, který lze použít k odstranění některých nezabezpečených výchozích nastavení. Před nasazením aplikace Laravel se doporučuje spustit tento skript.
sudo mysql_secure_installation
Výše uvedený příkaz spustí bezpečnostní skript, který vás vyzve k řadě otázek pro konfiguraci serveru MySQL.
Nejprve budete dotázáni, zda chcete nastavit OVĚŘENÍ HESLA
zapojit. Tento plugin zkontroluje vaše heslo a zařadí je jako bezpečné nebo nezabezpečené na základě úrovně zásad ověřování hesla, kterou si brzy zvolíte. Takže stiskněte Y pokud chcete tento plugin povolit.
Výstup: Zabezpečení nasazení serveru MySQL. Připojení k MySQL pomocí prázdného hesla. KOMPONENTU OVĚŘENÍ HESLA lze použít k testování hesel a zlepšení zabezpečení. Kontroluje sílu hesla a umožňuje uživatelům nastavit pouze ta hesla, která jsou dostatečně bezpečná. Chcete nastavit komponentu VALIDATE PASSWORD? Stiskněte y|Y pro Ano, jakékoli jiné tlačítko pro Ne: Y
Poté nastavte úroveň zásad ověřování hesla buď zadáním 0
, 1
nebo 2
v závislosti na tom, jak silné chcete vytvořit heslo pro své databáze.
Výstup: Existují tři úrovně zásady ověřování hesla: NÍZKÁ Délka >= 8 STŘEDNÍ Délka >= 8, číslice, velká a malá písmena a speciální znaky SILNÁ Délka >= 8, číslice, velká a malá písmena, speciální znaky a soubor slovníku Zadejte prosím 0 = NÍZKÁ, 1 = STŘEDNÍ a 2 = SILNÉ: 2
Dále budete požádáni o zadání nového hesla pro uživatele root MySQL. Zadejte vhodné heslo pro kořenový adresář MySQL. Plugin VALIDATE PASSWORD vám poskytne odhadovanou sílu vašeho hesla podle úrovně ověření vašeho hesla. lis Y
pokračovat s heslem, které jste zadali.
Výstup: Zde prosím nastavte heslo pro root. Nové heslo: Zadejte znovu nové heslo: Odhadovaná síla hesla: 100 Přejete si pokračovat se zadaným heslem? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) : Y
lis Y
u zbývajících výzev odstraní některé anonymní uživatele a testovací databáze, zakáže vzdálené přihlášení root a znovu načte nová nastavení serveru MySQL. Po dokončení otestujte databázi spuštěním:
sudo mysql
Výše uvedený příkaz otevře konzolu MySQL a připojí se k databázi MySQL jako vykořenit uživatel. Uvidíte výstup, jako je tento:
Výstup: Vítejte v monitoru MySQL. Příkazy končí na ; nebo \g. Vaše ID připojení k MySQL je 10 Verze serveru: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle a/nebo jeho přidružené společnosti. Všechna práva vyhrazena. Oracle je registrovaná ochranná známka společnosti Oracle Corporation a/nebo jejích přidružených společností. Ostatní názvy mohou být ochrannými známkami příslušných vlastníků. Napište 'help;' nebo '\h' pro pomoc. Chcete-li vymazat aktuální vstupní příkaz, zadejte '\c'. mysql>
Možná jste si všimli, že jste nemuseli zadávat heslo, které jste nastavili pro uživatele root MySQL. Je to proto, že výchozí metoda ověřování pro administrátora root uživatele MySQL je caching_sha2_authentication
místo toho mysql_native_password
metoda, která k přihlášení používá heslo.
Ve výchozím nastavení se tedy můžete přihlásit pouze jako uživatel root MySQL sudo
povolených uživatelů, kteří fungují jako dodatečné zabezpečení serveru MySQL. Ale MySQL PHP knihovna nepodporuje caching_sha2_authentication
metoda. Proto musíme použít mysql_native_password
když vytvoříme nového uživatele pro Laravel, protože používá hesla pro připojení a interakci s databází.
Vytvořte nového uživatele a databázi MySQL
Vždy je dobrým zvykem vytvořit nového uživatele a databázi speciálně pro vaši aplikaci namísto použití kořenových uživatelských a testovacích databází MySQL. Chystáme se tedy nastavit nového uživatele MySQL s názvem laravel_user
a databáze tzv laravel
. Pokud jste postupovali podle návodu až do tohoto bodu, měli byste mít otevřenou konzoli MySQL. Chcete-li vytvořit uživatele tzv laravel_user
spusťte v konzole MySQL následující dotaz:
Poznámka: Nahradit testpass
v níže uvedeném dotazu MySQL se silným heslem.
VYTVOŘIT UŽIVATELE 'laravel_user'@'%' IDENTIFIKOVANÉHO S mysql_native_password OD 'testpass';
Dále vytvořte databázi s názvem laravel
pro naši aplikaci Laravel spuštěním tohoto dotazu:
VYTVOŘIT DATABÁZI laravel;
Oprávnění k nově vytvořené databázi laravel má pouze uživatel root MySQL. Udělte všechna oprávnění k laravel
databáze do laravel_user
spuštěním:
GRANT ALL ON laravel.* TO 'laravel_user'@'%';
Nyní tedy máme nového uživatele MySQL a databázi, ukončete konzolu MySQL spuštěním:
VÝSTUP;
Otestujte svého nového uživatele MySQL tím, že se s ním přihlásíte do konzole MySQL, spusťte tento příkaz v terminálu:
mysql -u laravel_user -p
Všimněte si -p
flag v příkazu vás vyzve k zadání hesla, které jste použili při vytváření laravel_user
(testpass
v dotazu). Poté, co jste se přihlásili do konzole MySQL jako laravel_user
potvrďte, že uživatel má přístup k laravel
databáze spuštěním:
ZOBRAZIT DATABÁZE;
Výstup: +---------------------+ | Databáze | +---------------------+ | laravel | | informační_schéma | +--------------------+ 2 řady v sadě (0,01 s)
Výše uvedený výstup potvrzuje, že uživatel MySQL laravel_user
má oprávnění k databázi laravel
. Ukončete konzolu MySQL pomocí VÝSTUP;
dotaz, abychom mohli přistoupit k vytvoření aplikace DemoApp Laravel.
Instalace Laravelu
Rámec Laravel využívá Composer ke stažení a správě jeho závislostí. Než budeme moci vytvořit aplikaci Laravel, musíme nainstalovat Composer na náš stroj Ubuntu 20.04.
Nainstalujte Composer
Composer je nástroj pro správu závislostí pro PHP, který usnadňuje instalaci a aktualizaci rámců a knihoven PHP. V tomto tutoriálu se podíváme na to, jak rychle nainstalovat Composer, abychom jej mohli použít ke stažení a správě frameworku Laravel.
Musíte nainstalovat některé další balíčky, které Composer vyžaduje, aby fungovaly, jako např php-cli
pro spouštění PHP skriptů v terminálu a rozepnout
pomoci Composeru extrahovat balíčky. Nainstalujte je oba spuštěním:
sudo apt install php-cli rozbalit
Pak chcete-li nainstalovat Composer globálně, stáhněte si instalační skript Composer s kučera
a nainstalujte jej pomocí následujícího příkazu:
curl -sS //getcomposer.org/installer | sudo php ---install-dir=/usr/local/bin --filename=composer
Nakonec ověřte, že se skladatel správně nainstaloval spuštěním:
skladatel
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / / / /__ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Verze skladatele 1.10.8 2020-06- 24 21:23:30 Použití: příkaz [možnosti] [argumenty]
Tento výstup potvrzuje, že Composer funguje správně na vašem serveru Ubuntu 20.04, můžete jej začít používat k instalaci a správě PHP frameworků a knihoven.
Vytvořte aplikaci Laravel
Máme téměř vše potřebné k vytvoření aplikace Laravel na našem serveru Ubuntu 20.04 kromě několika rozšíření PHP. Nainstalujte tato chybějící rozšíření pomocí následujícího příkazu:
sudo apt install php-mbstring php-xml php-bcmath php-zip php-json
Nyní můžeme nainstalovat Laravel a vytvořit novou aplikaci Laravel s pomocí Composer. Nejprve se ujistěte, že jste v domovském adresáři vašeho uživatele:
cd ~
Poté vytvořte nový projekt Laravel pomocí aplikace Composer's vytvořit-projekt
příkaz:
skladatel vytvořit-projekt --prefer-dist laravel/laravel LaravelApp
Výše uvedený příkaz vytvoří nový projekt s názvem LaravelApp a také za vás nainstaluje a nakonfiguruje Laravel Framework. Uvidíte výstup podobný tomuto:
Výstup: Vytvoření projektu "laravel/laravel" na "./LaravelApp" Instalace laravel/laravel (v7.12.0) Instalace laravel/laravel (v7.12.0): Stažení (100%) Vytvořený projekt v /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Načítání úložišť skladatele s informacemi o balíčcích Aktualizace závislostí (včetně require-dev) Operace s balíčkem: 97 instalací, 0 aktualizací, 0 odstranění Instalace voku/portable-ascii (1.5.2): Stahování (100 %) Instalace symfony/polyfill-ctype (v1 .17.1): Stahování (100 %) Instalace phpoption/phpoption (1.7.4): Stahování (100 %) Instalace vlucas/phpdotenv (v4.1.7): Stahování (100 %) Instalace symfony/css-selector (v5.1.2) : Stahování (100 %) ....
Po dokončení instalace přejděte do kořenového adresáře aplikace a poté spusťte Laravel's řemeslník
příkaz k ověření, že jsou všechny součásti správně nainstalovány:
cd LaravelApp/ php artisan
Výstup: Laravel Framework 7.18.0 Použití: příkaz [volby] [argumenty] Možnosti: -h, --help Zobrazit tuto zprávu nápovědy -q, --quiet Nevypisovat žádnou zprávu -V, --version Zobrazit verzi této aplikace --ansi Vynutit výstup ANSI --no-ansi Zakázat výstup ANSI -n, --no-interaction Nepokládat žádnou interaktivní otázku --env[=ENV] Prostředí, ve kterém by měl příkaz běžet pod -v|vv|vvv, --verbose Zvýšit podrobnost zpráv: 1 pro normální výstup, 2 pro podrobnější výstup a 3 pro ladění ....
Tento výstup potvrzuje, že instalace byla úspěšná a všechny soubory jsou na svém místě a nástroje příkazového řádku Laravel fungují správně. Musíme však ještě nakonfigurovat aplikaci pro nastavení databáze a pár dalších nastavení.
Konfigurace aplikace Laravel
Konfigurační soubory Laravel jsou umístěny v adresáři s názvem config
v kořenovém adresáři aplikace. Navíc, když jsme nainstalovali Laravel přes Composer, vytvořil soubor prostředí s názvem „.env“ v kořenovém adresáři aplikace. Soubor prostředí obsahuje konfigurace specifické pro prostředí a má přednost před nastaveními v běžných konfiguračních souborech umístěných v adresáři config.
Poznámka: Konfigurační soubor prostředí obsahuje citlivé informace o vašem serveru, jako jsou hesla databáze, klíče aplikace Laravel atd. Proto by neměl být nikdy sdílen veřejně.
Nyní upravíme .env
soubor změnit konfiguraci a přidat do něj přihlašovací údaje databáze. Otevřete soubor pomocí nano editoru spuštěním:
nano .env
V tomto je mnoho konfiguračních proměnných .env
soubor. Nemusíme měnit každou z nich, protože Composer nakonfiguroval většinu nastavení automaticky. Zde je seznam některých primárních konfiguračních proměnných, o kterých musíte vědět:
APP_NAME
: Název aplikace používaný pro upozornění a zprávy, takže jej nastavíme na ‚LaravelApp‘.APP_ENV
: Tato proměnná se používá k označení aktuálního prostředí aplikace. Může být nastaven na místní, vývojové, testovací nebo produkční prostředí. Zatím jej nastavíme do vývojového prostředí.APP_KEY
: Unikátní aplikační klíč používaný k vytváření solí a hashů pro webovou aplikaci. Generuje se automaticky při instalaci Laravelu přes Composer, takže to není potřeba měnit.APP_DEBUG
: Může být nastavena buď na true nebo false, v závislosti na tom, zda chcete zobrazovat chyby na straně klienta. Při přechodu do produkčního prostředí jej nastavte na hodnotu false.APP_URL
: Základní URL nebo IP pro aplikaci, změňte ji na název své domény, pokud ji máte pro aplikaci Laravel, nebo ji zatím ponechte nedotčenou.DB_DATABASE
: Název databáze, kterou chcete používat s aplikací Laravel. Budeme používat databázi MySQL ‚laravel‘, kterou jsme vytvořili při konfiguraci MySQL.DB_USERNAME
: Uživatelské jméno pro připojení k databázi. Budeme používat uživatele MySQL ‚laravel_user‘, kterého jsme vytvořili.DB_PASSWORD
: Heslo pro připojení k databázi.
APP_NAME=LaravelApp
APP_ENV=rozvoj
APP_KEY=base64:Application_unique_key
APP_DEBUG=pravda APP_URL=//doména_nebo_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
Proveďte změny v .env
soubor podle toho a po dokončení úprav uložte a ukončete soubor pomocí CTRL+X
poté stiskněte Y
a potvrďte stisknutím klávesy Enter. Nyní zbývá pouze nakonfigurovat server Apache a vytvořit virtuální hostitele pro naši aplikaci Laravel.
Nastavení webového serveru Apache
Laravel jsme nainstalovali do místní složky domovského adresáře uživatele. I když to pro místní vývoj funguje naprosto dobře, doporučuje se mít adresář webových aplikací umístěn v /var/www
. Důvod, proč jsme nenainstalovali Laravel /var/www
přímo je to proto, že je ve vlastnictví root a Composer by se s ním neměl používat sudo
.
Takže použijte mv
příkaz k přesunutí složky aplikace Laravel a jejího obsahu /var/www
:
sudo mv ~/Laravel/ /var/www
Adresář LaravelApp je ve vlastnictví uživatele, takže stále můžete upravovat a měnit soubory bez použití sudo
příkaz. Webový server Apache však potřebuje přístup k mezipaměti a adresářům úložiště aplikace, protože do něj Laravel ukládá soubory generované aplikací. Změňte vlastníka těchto složek na www-data
uživatel pomocí chown
pří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 změně vlastníka těchto adresářů povolte Apache mod_rewrite
jak to vyžaduje Laravel, aby správně transformoval URL, aby byly interpretovány jeho směrovací funkcí přes .htaccess
soubor.
přepsat sudo a2enmod
Dále musíme nastavit virtuálního hostitele pro aplikaci Laravel. Konfigurace virtuálního hostitele se nachází na adrese /etc/apache2/sites-available
. Chystáme se upravit výchozí soubor virtuálního hostitele pro nasazení aplikace Laravel. Otevřete výchozí konfigurační soubor virtuálního hostitele pomocí editoru nano:
sudo nano /etc/apache2/sites-available/000-default.conf
Změňte kořen dokumentu z /var/www/html
na /var/www/LaravelApp/public
a přidejte následující úryvek pod řádek DocumentRoot:
AllowOverride All
Vaše 000-default.conf
by teď s pár komentáři mělo vypadat nějak takhle.
ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log kombinované
Restartujte webový server Apache spuštěním následujícího příkazu:
sudo systemctl restart apache2
Nyní přejděte do prohlížeče a zadejte IP adresu vašeho serveru Ubuntu 20.04. Místo výchozí uvítací stránky Apache uvidíte úvodní stránku Laravel.
Za předpokladu, že jste až dosud postupovali podle tohoto návodu, měli byste mít funkční aplikaci Laravel s databází MySQL s názvem laravel
pro to. Od této chvíle můžete svou aplikaci Laravel začít vyvíjet sami. Chcete-li se dozvědět více o frameworku Laravel a jeho použití, navštivte stránku dokumentů Laravel.