A Laravel telepítése Ubuntu 20.04-re

Minden, amit tudnia kell egy Laravel webalkalmazás Ubuntu 20.04 LTS gépen történő üzembe helyezéséhez

A Laravel egy nagyon népszerű nyílt forráskódú PHP keretrendszer kifejező és elegáns szintaxisával, amelyet modern és gyönyörű webes alkalmazások tervezésére használnak. A Laravel célja, hogy enyhítse a webfejlesztés fájdalmát, és élvezetes és kreatív élménnyé tegye, a webfejlesztőket webes kézművesekké alakítva.

Ebből az útmutatóból megtudhatja, hogyan telepítheti a Laravel-t LAMP stack segítségével egy Ubuntu 20.04 szerverre, hogy webalkalmazása üzembe helyezhető és működjön.

Előfeltételek

Az útmutató követéséhez Ubuntu 20.04 LTS-kiszolgálóra lesz szüksége, és be kell jelentkeznie sudo felhasználó. Mielőtt elkezdené, frissítse és frissítse az Ubuntu 20.04 csomagokat a következő futtatással:

sudo apt frissítés && sudo apt frissítés

LAMP Stack telepítése

A LAMP a szó rövidítése L inux operációs rendszer, A pache webszerver, M ySQL adatbázis és P HP programozási nyelv. Már az Ubuntu 20.04-en vagyunk, amely a Linuxot LAMP-veremben jelzi. Tehát telepíteni fogjuk a többi három csomagot, hogy teljes legyen a LAMP verem a Laravel alkalmazásunkhoz.

Nem áll rendelkezésre meta-csomag a LAMP-verem telepítéséhez az Ubuntu 20.04-es tárolókban. De használhatunk egy ügyes kis funkciót alkalmas feladatoknak nevezett csomagkezelő. A feladatokat az elérhető feladat nevével jelöljük egy kadéttal (^) csatolva.

sudo apt install lamp-server^

Ez a parancs megkeresi a csomaglista fájljaiban az összes „Task:” mezőt, és telepíti az összes olyan csomagot, amelynek feladatmezőjében „lamp-server” szerepel. Így az Apache, MySQL és PHP csomagokból álló LAMP-verem minden függőséggel együtt lesz telepítve az Ubuntu szerverére.

Tűzfal konfigurálása

A LAMP verem telepítése után az egyszerű tűzfalat (UFW) is konfigurálnia kell, és módosítania kell a szabályait, hogy az internetről hozzáférhessen az Apache szerverhez.

Az UFW egyszerű alkalmazásprofilokat biztosít, amelyek segítségével módosíthatók a szabályok, és átkapcsolható a forgalom a hálózati portokon. Futtassa a következő parancsot a hálózati portokhoz hozzáférő összes alkalmazás listázásához:

sudo ufw alkalmazáslista

Ilyen kimenetet fog látni:

Elérhető alkalmazások: Apache Apache Full Apache Secure OpenSSH

Az alábbiakban felsoroljuk az Ubuntu 20.04 kiszolgálón megnyitott profilok hálózati portjait:

  • Apache: Ez a profil csak a portot nyitja meg 80 (lehetővé teszi a HTTP forgalmat)
  • Apache Full: Ez a profil mindkettőt megnyitja 80 & 443 portok (lehetővé teszi a HTTP és HTTPS forgalmat)
  • Apache Secure: Ez a profil csak a portot nyitja meg 443 (lehetővé teszi a HTTPS forgalmat)
  • OpenSSH: Ez a profil nyitja meg a portot 22 amely lehetővé teszi az SSH protokollt

Engedélyeznie kell az „Apache Full” profilt, amely lehetővé teszi a forgalmat az Apache webszerver felé az internetről. Ezenkívül engedélyeznie kell az „OpenSSH” profilt is, amely lehetővé teszi a porton keresztüli forgalmat 22 (SSH) az Ubuntu 20.04 szerverén. Ha engedélyezi az UFW-t az „OpenSSH” profil engedélyezése nélkül, akkor nem tud SSH használatával csatlakozni a szerveréhez.

Az UFW-szabály módosítása és a forgalom engedélyezése a porton 80 és 22, fuss:

sudo ufw engedélyezése 'Apache Full' sudo ufw engedélyezése 'OpenSSH'

Ezután engedélyezze az UFW tűzfalat a következő paranccsal:

sudo ufw engedélyezése

Előfordulhat, hogy a következő üzenet jelenik meg: „A parancs megzavarhatja a meglévő ssh-kapcsolatokat. Folytassa a műveletekkel (y|n)?”. nyomja meg Y a folytatáshoz, mivel már hozzáadtunk egy szabályt az SSH engedélyezésére az UFW-ben.

Most már elérheti az Apache alapértelmezett weboldalát az Ubuntu szerver IP-címével az internetről. Ehhez nyissa meg a böngészőt, írja be az Ubuntu 20.04 szerver IP-címét az URL-sávba, majd nyomja meg az Enter billentyűt.

//Your_ubuntu_server_ip

Ez az oldal megerősíti, hogy az Apache webszerver megfelelően fut, és az UFW szabályok megfelelően vannak beállítva.

MySQL adatbázis beállítása Laravelhez

A Laravel 7 rendkívül egyszerűvé teszi az adatbázisokkal való interakciót az általa támogatott különféle adatbázis-háttérrendszereken, például a MySQL 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ és SQL Server 2017+ között. Már telepítve van a legújabb MySQL csomag a lámpa-szerver^ feladat. Tehát ebben a részben konfiguráljuk a MySQL szervert, majd megvizsgáljuk, hogyan állíthatunk be egy új MySQL felhasználót és adatbázist a Laravel alkalmazáshoz.

A MySQL beállítása

A MySQL adatbázis egy előre telepített biztonsági szkripttel érkezik, amely néhány nem biztonságos alapértelmezett beállítás eltávolítására használható. Javasoljuk, hogy a Laravel alkalmazás telepítése előtt futtassa ezt a szkriptet.

sudo mysql_secure_installation

A fenti parancs végrehajtja a biztonsági parancsfájlt, amely egy sor kérdést fog feltenni a MySQL-kiszolgáló konfigurálásához.

Először a rendszer megkérdezi, hogy be szeretné-e állítani a JELSZÓ ÉRVÉNYESÍTÉSE csatlakoztat. Ez a beépülő modul ellenőrzi jelszavát, és biztonságosnak vagy nem biztonságosnak minősíti azokat a hamarosan választott jelszó-érvényesítési házirend-szint alapján. Szóval nyomj Y ha engedélyezni szeretné ezt a bővítményt.

Kimenet: A MySQL szerver telepítésének biztosítása. Csatlakozás a MySQL-hez üres jelszó használatával. A JELSZÓ ELLENŐRZÉSE KOMPONENS a jelszavak tesztelésére és a biztonság javítására használható. Ellenőrzi a jelszó erősségét, és lehetővé teszi a felhasználók számára, hogy csak azokat a jelszavakat állítsák be, amelyek elég biztonságosak. Szeretné beállítani a JELSZÓ VALÓSÍTÁSA komponenst? Nyomja meg az y|Y billentyűt az igenhez, bármely másik gombot a Nemhez: Y

Ezután állítsa be a jelszó-érvényesítési házirend szintjét bármelyik bevitellel 0, 1 vagy 2 attól függően, hogy milyen erős jelszót kíván létrehozni az adatbázisaihoz.

Kimenet: A jelszó érvényesítésének három szintje van: LOW Length >= 8 MEDIUM Length >= 8, numerikus, vegyes kis- és nagybetűk és speciális karakterek STRONG Length >= 8, numerikus, vegyes kis- és nagybetűk, speciális karakterek és szótárfájl Kérjük, írja be a 0 = LOW, 1 = KÖZEPES és 2 = ERŐS: 2

Ezután meg kell adnia egy új jelszót a MySQL root felhasználóhoz. Adjon meg egy megfelelő jelszót a MySQL root számára. A JELSZÓ ELLENŐRZÉSE beépülő modul megadja a jelszó becsült erősségét a jelszó-érvényesítési szintnek megfelelően. nyomja meg Y hogy folytassa a megadott jelszóval.

Kimenet: Itt állítsa be a root jelszót. Új jelszó: Írja be újra az új jelszót: A jelszó becsült erőssége: 100 Szeretné folytatni a megadott jelszót? (Nyomja meg az y|Y billentyűt az Igenhez, bármelyik másik gombot a Nemhez) : Y

nyomja meg Y A többi prompt esetében eltávolítanak néhány névtelen felhasználót és a tesztadatbázisokat, letiltják a távoli root bejelentkezést, és újra betöltik a MySQL szerver új beállításait. Ha végzett, tesztelje az adatbázist a következő futtatásával:

sudo mysql

A fenti parancs megnyitja a MySQL konzolt, amely a MySQL adatbázishoz csatlakozik gyökér felhasználó. Ilyen kimenetet fog látni:

Kimenet: Üdvözöljük a MySQL monitoron. A parancsok ; vagy \g. Az Ön MySQL kapcsolati azonosítója: 10 Szerververzió: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle és/vagy leányvállalatai. Minden jog fenntartva. Az Oracle az Oracle Corporation és/vagy leányvállalatainak bejegyzett védjegye. Más nevek a megfelelő tulajdonosok védjegyei lehetnek. Írja be a 'help;' parancsot vagy '\h' segítségért. Az aktuális beviteli utasítás törléséhez írja be a „\c” parancsot. mysql>

Talán észrevette, hogy nem kellett megadnia a MySQL root felhasználóhoz beállított jelszót. Ennek az az oka, hogy az adminisztratív MySQL root felhasználó alapértelmezett hitelesítési módja caching_sha2_authentication helyett a mysql_native_password módszer, amely jelszót használ a bejelentkezéshez.

Tehát alapértelmezés szerint csak MySQL root felhasználóként tud bejelentkezni sudo engedélyezett felhasználók, amelyek további biztonságot jelentenek a MySQL szerver számára. De a MySQL PHP könyvtár nem támogatja caching_sha2_authentication módszer. Ezért használnunk kell mysql_native_password módszerrel, amikor új felhasználót hozunk létre a Laravel számára, mivel az jelszavakat használ az adatbázishoz való csatlakozáshoz és interakcióhoz.

Hozzon létre egy új MySQL felhasználót és adatbázist

Mindig célszerű új felhasználót és adatbázist létrehozni kifejezetten az alkalmazásához a MySQL root felhasználói és tesztadatbázisok használata helyett. Tehát egy új MySQL-felhasználót állítunk be laravel_user nevű adatbázis pedig laravel. Ha idáig követte az oktatóanyagot, akkor nyitva kell lennie a MySQL konzolnak. A felhasználó létrehozásához hívják laravel_user futtassa a következő lekérdezést a MySQL konzolon:

Jegyzet: Helyettesíteni a tesztpassz az alábbi MySQL lekérdezésben erős jelszóval.

FELHASZNÁLÓ LÉTREHOZÁSA 'laravel_user'@'%' A mysql_native_password A 'testpass' AZONOSÍTÁSA;

Ezután hozzon létre egy adatbázist, melynek neve laravel Laravel alkalmazásunkhoz a következő lekérdezés futtatásával:

ADATBÁZIS LÉTREHOZÁSA laravel;

Csak a MySQL root felhasználónak van engedélye az újonnan létrehozott adatbázis-laravelhez. Adjon meg minden engedélyt a laravel adatbázisba a laravel_user futással:

MINDEN GRANT ON laravel.* TO 'laravel_user'@'%';

Tehát most van egy új MySQL felhasználónk és egy adatbázisunk, lépjen ki a MySQL konzolból a következő futtatással:

KIJÁRAT;

Tesztelje új MySQL-felhasználóját úgy, hogy bejelentkezik vele a MySQL-konzolba, ehhez futtassa ezt a parancsot a terminálon:

mysql -u laravel_user -p

Vedd észre a -o jelölje be a parancsban, akkor a rendszer kéri a létrehozásakor használt jelszót laravel_user (tesztpassz a lekérdezésben). Miután bejelentkezett a MySQL konzolba mint laravel_user, ellenőrizze, hogy a felhasználó hozzáfér-e a laravel adatbázis futtatásával:

ADATBÁZISOK MUTATÁSA;
Kimenet: +--------------------+ | Adatbázis | +--------------------+ | laravel | | információs_séma | +--------------------+ 2 sor a készletben (0,01 mp)

A fenti kimenet megerősíti, hogy a MySQL felhasználó laravel_user jogosultságokkal rendelkezik az adatbázishoz laravel. Lépjen ki a MySQL konzolból a gombbal KIJÁRAT; lekérdezést, hogy folytathassuk a DemoApp Laravel alkalmazás létrehozását.

Laravel telepítése

A Laravel keretrendszer a Composert használja a függőségek letöltéséhez és kezeléséhez. Tehát telepítenünk kell a Composert az Ubuntu 20.04-es gépünkre, mielőtt létrehoznánk egy Laravel alkalmazást.

Telepítse a Composert

A Composer egy függőségkezelő eszköz a PHP-hez, amely sokkal egyszerűbbé teszi a PHP keretrendszerek és -könyvtárak telepítését és frissítését. Ebben az oktatóanyagban megvizsgáljuk, hogyan telepíthetjük gyorsan a Composert, hogy letölthessük és kezelhessük a Laravel keretrendszert.

Telepítenie kell néhány további csomagot, amelyek a Composer működéséhez szükségesek, mint pl php-cli PHP szkriptek futtatásához a terminálban és csomagolja ki hogy segítsen a Composernek kibontani a csomagokat. Telepítse mindkettőt a következő futtatással:

sudo apt install php-cli kicsomagolás

Ezután a Composer globális telepítéséhez töltse le a Composer telepítőszkriptjét a következővel becsavar és telepítse a következő paranccsal:

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

Végül ellenőrizze, hogy a zeneszerző megfelelően telepítve van-e a következő futtatásával:

Zeneszerző
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ / /_/ / / / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Zeneszerző verzió 1.10.8 2020-06- 24 21:23:30 Használat: parancs [opciók] [érvek]

Ez a kimenet megerősíti, hogy a Composer megfelelően működik az Ubuntu 20.04 kiszolgálón, így elkezdheti használni a PHP keretrendszerek és könyvtárak telepítéséhez és kezeléséhez.

Hozzon létre egy Laravel alkalmazást

Nagyjából mindenünk megvan, ami egy Laravel alkalmazás létrehozásához szükséges az Ubuntu 20.04 szerverünkön, kivéve néhány PHP-bővítményt. Telepítse ezeket a hiányzó bővítményeket a következő paranccsal:

sudo apt install php-mbstring php-xml php-bcmath php-zip php-json

Most már telepíthetjük a Laravel-t és létrehozhatunk egy új Laravel alkalmazást a Composer segítségével. Először is győződjön meg arról, hogy a felhasználó kezdőkönyvtárában van:

cd ~

Ezután hozzon létre egy új Laravel projektet a Composer's segítségével létrehozás-projekt parancs:

zeneszerző create-project --prefer-dist laravel/laravel LaravelApp

A fenti parancs egy új projektet hoz létre LaravelApp néven, és telepíti és konfigurálja a Laravel Framework-et is. Ehhez hasonló kimenetet fog látni:

Kimenet: "Laravel/laravel" projekt létrehozása itt: "./LaravelApp" Laravel/laravel telepítése (v7.12.0) Laravel/laravel telepítése (v7.12.0): Letöltés (100%) Létrehozott projekt itt: /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Létrehozó tárolók betöltése csomaginformációkkal Függőségek frissítése (beleértve a követelmény-fejlesztőt is) Csomagműveletek: 97 telepítés, 0 frissítés, 0 eltávolítás .17.1): Letöltés (100%) A phpooption/phpooption (1.7.4) telepítése: Letöltés (100%) A vlucas/phpdotenv telepítése (v4.1.7): Letöltés (100%) A symfony/css-selector (v5.1.2) telepítése : Letöltés (100%) ....

Amikor a telepítés befejeződött, lépjen az alkalmazás gyökérkönyvtárába, majd futtassa a Laravel-t kézműves paranccsal ellenőrizheti, hogy minden összetevő megfelelően telepítve van-e:

cd LaravelApp/ php kézműves
Kimenet: Laravel Framework 7.18.0 Használat: parancs [opciók] [argumentumok] Opciók: -h, --help A súgóüzenet megjelenítése -q, --quiet Ne írjon ki üzenetet -V, --version Az alkalmazás verziójának megjelenítése --ansi ANSI kimenet kényszerítése --no-ansi ANSI kimenet letiltása -n, --no-interaction Ne tegyen fel interaktív kérdést --env[=ENV] A parancsnak a -v|vv|vvv, --verbose alatt futnia kell. az üzenetek bőbeszédűsége: 1 a normál kimenethez, 2 a részletesebb kimenethez és 3 a hibakereséshez ....

Ez a kimenet megerősíti, hogy a telepítés sikeres volt, az összes fájl a helyén van, és a Laravel parancssori eszközei megfelelően működnek. Azonban még mindig konfigurálnunk kell az alkalmazást az adatbázis és néhány egyéb beállítás beállításához.

Konfigurálja a Laravel alkalmazást

A Laravel konfigurációs fájlok egy nevű könyvtárban találhatók config az alkalmazás gyökérkönyvtárában. Ezenkívül, amikor a Composeren keresztül telepítettük a Laravel-t, létrehozta a „.env” nevű környezetfájlt az alkalmazás gyökérkönyvtárában. A környezetfájl tartalmazza a környezetspecifikus konfigurációkat, és elsőbbséget élvez a konfigurációs könyvtárban található szokásos konfigurációs fájlok beállításaival szemben.

Megjegyzés: A környezet konfigurációs fájlja érzékeny információkat tartalmaz a szerverről, például adatbázis jelszavakat, Laravel alkalmazáskulcsokat stb. Ezért soha nem szabad nyilvánosan megosztani.

Most szerkesztjük a .env fájlt a konfiguráció módosításához és az adatbázis hitelesítő adatainak hozzáadásához. Nyissa meg a fájlt a nano szerkesztővel a következő futtatásával:

nano .env

Ebben sok konfigurációs változó van .env fájlt. Nem kell mindegyiket módosítanunk, mivel a Composer a legtöbb beállítást automatikusan konfigurálta. Tehát itt van néhány elsődleges konfigurációs változó listája, amelyeket tudnia kell:

  • APP NÉV: Az értesítésekhez és üzenetekhez használt alkalmazásnév, ezért „LaravelApp”-ra fogjuk beállítani.
  • APP_ENV: Ez a változó az aktuális alkalmazási környezet jelzésére szolgál. Beállítható helyi, fejlesztési, tesztelési vagy termelési környezetre. Egyelőre a fejlesztői környezethez fogjuk állítani.
  • APP_KEY: Egyedülálló alkalmazási kulcs a webalkalmazás sóinak és kivonatainak létrehozásához. Ez automatikusan generálódik, amikor a Laravelt a Composeren keresztül telepíti, így nincs szükség ezen a változtatásra.
  • APP_DEBUG: Igaz vagy hamis értékre állítható, attól függően, hogy a kliens oldalon szeretné-e megjeleníteni a hibákat. Állítsa false értékre, amikor átlép az éles környezetbe.
  • APP_URL: Az alkalmazás alap URL-je vagy IP-címe, módosítsa a domain nevére, ha rendelkezik ilyennel a Laravel alkalmazáshoz, vagy tartsa érintetlenül.
  • DB_ADATBÁZIS: A Laravel alkalmazással használni kívánt adatbázis neve. A MySQL konfigurálása során létrehozott „laravel” MySQL adatbázist fogjuk használni.
  • DB_USERNAME: Felhasználónév az adatbázishoz való csatlakozáshoz. Az általunk létrehozott „laravel_user” MySQL-felhasználót fogjuk használni.
  • DB_PASSWORD: Az adatbázishoz való csatlakozáshoz szükséges jelszó.
 APP_NAME= LaravelApp APP_ENV= fejlődés APP_KEY= base64:Application_unique_key APP_DEBUG=igazi APP_URL= //domain_vagy_IP LOG_CHANNEL=verem DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PASSWORD= tesztpassz

Végezzen módosításokat a .env fájl ennek megfelelően, és ha végzett a szerkesztéssel, mentse el, és lépjen ki a fájlból a használatával CTRL+X majd nyomja meg Y és nyomja meg az Enter billentyűt a megerősítéshez. Most már csak az Apache szerver konfigurálása és egy virtuális gazdagép létrehozása van hátra a Laravel alkalmazásunkhoz.

Az Apache webszerver beállítása

A Laravel-t a felhasználó saját könyvtárának helyi mappájába telepítettük. Bár ez tökéletesen működik a helyi fejlesztéseknél, ajánlott gyakorlat, hogy a webalkalmazás-címtárat ebben helyezze el /var/www. Az ok, amiért nem telepítettük a Laravelt /var/www közvetlenül azért van, mert a root tulajdonosa, és a Composert nem szabad vele használni sudo.

Tehát használja a mv paranccsal áthelyezheti a Laravel alkalmazásmappát és annak tartalmát /var/www:

sudo mv ~/Laravel/ /var/www

A LaravelApp könyvtár a felhasználó tulajdonában van, így továbbra is szerkesztheti és módosíthatja a fájlokat a sudo parancs. Az Apache webszervernek azonban hozzá kell férnie az alkalmazások gyorsítótárához és tárolási könyvtáraihoz, mivel a Laravel az alkalmazások által generált fájlokat tárolja benne. Módosítsa ezeknek a mappáknak a tulajdonosát a www-adatok felhasználó a chown parancs:

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

Miután megváltoztatta e könyvtárak tulajdonosát, engedélyezze az Apache-t mod_rewrite mivel a Laravel megköveteli, hogy megfelelően átalakítsa az URL-eket, hogy azokat az útválasztási funkciója értelmezze .htaccess fájlt.

sudo a2enmod újraírás

Ezután be kell állítanunk egy virtuális gazdagépet a Laravel alkalmazáshoz. A virtuális gazdagép konfigurációi a címen találhatók /etc/apache2/sites-available. Az alapértelmezett virtuális gazdagép fájlt szerkeszteni fogjuk a Laravel alkalmazás telepítéséhez. Nyissa meg az alapértelmezett virtuális gazdagép konfigurációs fájlt a nano szerkesztővel:

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

Változtassa meg a dokumentum gyökerét /var/www/html nak nek /var/www/LaravelApp/public és adja hozzá a következő részletet a DocumentRoot sor alá:

 AllowOverride All 

A te 000-default.conf most valahogy így kellene kinéznie néhány megjegyzéssel.

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

Indítsa újra az Apache webszervert a következő parancs futtatásával:

sudo systemctl indítsa újra az apache2-t

Most lépjen a böngészőbe, és írja be az Ubuntu 20.04 szerver IP-címét. A Laravel kezdőlapját fogja látni az alapértelmezett Apache üdvözlőoldal helyett.

Feltéve, hogy eddig követte ezt az útmutatót, rendelkeznie kell egy működő Laravel alkalmazással MySQL adatbázissal, ún. laravel érte. Ettől a ponttól kezdve elkezdheti önállóan fejleszteni Laravel alkalmazását. Ha többet szeretne megtudni a Laravel keretrendszerről és annak használatáról, látogasson el a Laravel dokumentumok oldalára.