Jak nainstalovat Laravel na Ubuntu 20.04

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_userpotvrď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.