Bevezetés
Laravel egy olyan webalkalmazás-keretrendszer, amely tartalmaz egy beépített eszköz- és erőforráskészletet modern PHP alkalmazások fejlesztéséhez. Megbízhatóságáról, teljesítményéről, hatékonyságáról, modularitásáról és biztonságáról ismert. Különböző beépített funkcióinak köszönhetően a Laravel népszerűsége hihetetlen mértékben növekedett. Sok fejlesztő alkalmazza a Laravelt a webfejlesztési folyamat egyszerűsítésére.
Ez a útmutató bemutatja, hogyan kell telepíteni és konfigurálni egy új Laravel alkalmazást Ubuntu 20.04-en.
Laravel Ubuntu-n
A Composer nevű PHP függőségkezelőt fogjuk használni a Laravel letöltéséhez és kezeléséhez. A Composer telepítéséhez kövesse ennek az útmutatónak az utasításait. Az Nginx szerver fogja kiszolgálni az alkalmazást. Egy demo Laravel alkalmazást fogunk létrehozni a MySQL adatbázis használatával.
Ehhez az útmutatóhoz szükség van néhány előfeltételre. Feltételezzük, hogy már rendelkezik egy megfelelően konfigurált és működő Ubuntu 20.04 szerverrel. Referenciaként itt egy gyors útmutató az Ubuntu szerver beállításáról . Szükséges továbbá a LEMP (Linux, Nginx, MySQL és PHP) szoftvercsomag telepítése és konfigurálása. Rendelkezünk egy részletes útmutatóval a LEMP szoftvercsomag telepítéséről és konfigurálásáról.
Mivel különböző csomagokat fogunk telepíteni, ehhez root jogosultság szükséges. Ubuntu esetén a root felhasználó alapértelmezés szerint le van tiltva. Ezért szükségünk van egy nem-root felhasználóhoz való hozzáférésre sudo jogosultsággal. Itt megtalálja, hogyan adhat sudo jogosultságot más felhasználóknak.
1. lépés – PHP modulok telepítése
A Laravel telepítése előtt szükségünk van néhány fontos PHP modulra a keretrendszerhez. Ezek a modulok közvetlenül elérhetők az Ubuntu alapértelmezett csomagtárolóiból. Ezek a modulok olyan funkciókat támogatnak, mint a karakterkódolás, az XML és a precíziós matematika.
Először frissítse az APT gyorsítótárat, és telepítse a csomagokat:
|
1 2 |
$ sudo apt update $ sudo apt install php-mbstring php-xml php-bcmath |
2. lépés – Adatbázis létrehozása az alkalmazáshoz
A Laravel működésének bemutatására egy utazási listát tartalmazó alkalmazást készítünk, amely megmutatja azon helyek listáját, amelyeket a felhasználó meg szeretne látogatni, valamint a már meglátogatott helyek listáját. Ezeket az adatokat egy helyek táblában tárolhatjuk a name (hely neve) és visited (jelölve mint visited vagy nonvisited) mezőkkel. Egy további mező egyedi azonosítót biztosít minden egyes bejegyzéshez. Az adatok Laravel alkalmazásunkkal való összekapcsolásához létrehozunk egy dedikált MySQL felhasználót, és teljes jogosultságot biztosítunk a felhasználónak a travellist.
A natív MySQL PHP könyvtár, a mysqlnd már nem támogatja a caching_sha2_authentication hitelesítést. Ezért az adatbázisunkat a mysql_native_password hitelesítési módszerrel kell beállítanunk. Lépjen be a MySQL shellbe mint root:
|
1 |
$ sudo mysql |
Ezután hozzon létre egy új adatbázist travellist:
|
1 |
> CREATE DATABASE travellist; |
Ezt követően hozzon létre egy dedikált travellist_user felhasználót egy megfelelő jelszóval:
|
1 |
> CREATE USER 'travellist_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password123'; |
Adjon a travellist_user felhasználónak teljes jogosultságot a travellist adatbázis felett. Ez megakadályozza azt is, hogy a felhasználó bármilyen más adatbázist hozzon létre vagy módosítson a szerveren:
|
1 |
> GRANT ALL ON travellist.* TO 'travellist_user'@'%'; |
Lépjen ki a MySQL shellből:
|
1 |
> exit |
Tegyük próbára az új felhasználót. A következő parancs bejelentkezik a MySQL shellbe mint travellist_user felhasználó. A -p kapcsoló kérni fogja a felhasználó jelszavát:
|
1 |
$ mysql -u travellist_user -p |
Írassa ki az összes elérhető adatbázist. A korábbi beállításoknak megfelelően csak a travellist és az information_schema adatbázisokat kell mutatnia:
|
1 |
> SHOW DATABASES; |
Ezután létre kell hoznunk a places adattáblát. Futtassa a következő MySQL utasítást:
|
1 2 3 4 5 6 |
> CREATE TABLE travellist.places ( id INT AUTO_INCREMENT, name VARCHAR(255), visited BOOLEAN, PRIMARY KEY(id) ); |
Töltsük fel a táblát néhány mintaadattal:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
> INSERT INTO travellist.places (name, visited) VALUES ("Tokyo", false), ("Delhi", true), ("Shanghai", false), ("Moscow", true), ("Lisbon", true), ("Denver", false), ("Berlin", false), ("Istanbul", false), ("Rio", true), ("Beijing", false), ("Helsinki", false); |
Lássuk, hogy az adatok sikeresen mentésre kerültek-e az adatbázisban:
|
1 |
> SELECT * FROM travellist.places; |
Amint láthatjuk, a teszttábla fel van töltve érvényes adatokkal. Most már kiléphetünk a MySQL shellből:
|
1 |
> exit |
Step 3 – Új Laravel alkalmazás létrehozása
Most már készen állunk egy új Laravel alkalmazás létrehozására a Composer segítségével. A travellist alkalmazást fogjuk használni bemutató alkalmazásként. Ez az alkalmazás megjeleníti a helyszínek listáját a MySQL adatbázisból, bemutatva a Laravel alapvető konfigurációját. Lépjen a felhasználó saját könyvtárába:
|
1 |
$ cd ~ |
A következő lépés egy új Laravel alkalmazás létrehozása a Composer segítségével. Ez létrehoz egy dedikált travellist könyvtárat egy alapértelmezett beállításokkal rendelkező, minimális Laravel alkalmazással. Futtassa a következő parancsot:
|
1 |
$ composer create-project --prefer-dist laravel/laravel travellist |
Miután az alkalmazás létrejött, ellenőrizhetjük, hogy minden összetevő sikeresen telepítve lett-e:
|
1 2 |
$ cd travellist $ php artisan |
A kimenet igazolja, hogy az alkalmazás összes fájlja a helyén van. Arról is biztosít minket, hogy az összes Laravel parancssori eszköz működőképes. Azonban az adatbázis beállításához és néhány további finomhangoláshoz még szükség van az alkalmazás konfigurálására.
Step 4 – Laravel konfiguráció
Az összes Laravel konfigurációs fájl egy config nevű könyvtárban található az alkalmazás gyökérkönyvtárán belül. Emellett, amikor a Laravelt a Composer segítségével telepíti, az egy környezeti (environment) fájlt is létrehoz. Ez az aktuális környezetre jellemző különféle beállításokat tartalmazza. Az ebben deklarált értékek elsőbbséget élveznek a normál konfigurációs fájlokban megadott értékekkel szemben a config.
könyvtárban. Minden egyedi telepítéshez saját környezeti fájlra lesz szükség az olyan értékek meghatározásához, mint az adatbázis-kapcsolat beállításai, az alkalmazás URL-je, a hibakeresési (debug) opciók stb. Vegye figyelembe, hogy a környezeti fájl érzékeny információkat tartalmaz, például adatbázis-hitelesítő adatokat, biztonsági kulcsokat stb. Ezért erősen ajánlott, hogy ezt a fájlt soha ne ossza meg nyilvánosan.
Nyissa meg a környezeti fájlt egy szövegszerkesztővel:
|
1 |
$ nano .env |
Íme egy minta környezeti kód:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
APP_NAME=TravelList APP_ENV=development APP_KEY=<unique_app_key> APP_DEBUG=true APP_URL=http://<domain_or_ip> LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=travellist DB_USERNAME=travellist_user DB_PASSWORD=password123 |
Nézzük meg részletesen az értékeket:
APP_NAME: Ez a mező az alkalmazás nevét írja le. Ez a név lesz használva az értesítésekhez és üzenetekhez.APP_ENV: Az alkalmazás aktuális környezete.APP_KEY: Ez a kulcs automatikusan generálódik, amikor a Laravelt a Composer segítségével telepíti. Salt-ok és hash-ek generálására szolgál. Nem szükséges megváltoztatni.APP_DEBUG: Hibakeresési (debug) mód kapcsolója. Ha be van kapcsolva, hibakeresési információkat jelenít meg a kliensoldalon.APP_URL: Az alkalmazás alapértelmezett URL-je. Az alkalmazás hivatkozásainak generálására is szolgál.DB_DATABASE: Az adatbázis neve. Ebben az esetben ez az általunk létrehozott dedikált adatbázis lesz.DB_USERNAME: Az adatbázishoz való kapcsolódáshoz használt felhasználónév.DB_PASSWORD: Az adatbázishoz való kapcsolódáshoz használt jelszó.
Miután elvégezte a módosításokat, mentse el a fájlt, és zárja be a szerkesztőt.
Step 5 – Az Nginx beállítása
Sikeresen telepítettük a Laravelt a felhasználó saját könyvtárának egy helyi mappájába. Ez a konfiguráció jól működik a helyi fejlesztői környezetben. Azonban nem ajánlott a nyilvános internet számára nyitott webszervereken alkalmazni.
A következő lépésünk az alkalmazás áthelyezése a(z) /var/www könyvtárba, mivel ez az Nginx-en futó webalkalmazások szokásos helye. Használja a(z) mv parancsot a(z) travellist áthelyezéséhez a(z) /var/www/travellist:
|
1 |
$ sudo mv ~/travellist /var/www/travellist |
Ezután adjon a felhasználónak írási hozzáférést a(z) storage és cache mappákhoz. Ezek a Laravel alkalmazás által generált fájlok helyei:
|
1 2 |
$ sudo chown -R www-data.www-data /var/www/travellist/storage $ sudo chown -R www-data.www-data /var/www/travellist/bootstrap/cache |
Az alkalmazásfájlok most már a helyükön vannak. Azonban meg kell mondanunk az Nginx-nek, hogy szolgálja ki a tartalmat. Hozzon létre egy új virtuális gazdagép konfigurációs fájlt:
|
1 |
$ sudo nano /etc/nginx/sites-available/travellist |
Íme egy minta az Nginx-en futó Laravel alkalmazásokhoz ajánlott beállításokról:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
server { listen 80; server_name <domain_or_ip>; root /var/www/travellist/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } |
Ideje aktiválni az új virtuális gazdagép konfigurációs fájlt. Hozzon létre egy szimbolikus linket a(z) sites-enabled könyvtárba:
|
1 |
$ sudo ln -s /etc/nginx/sites-available/travellist /etc/nginx/sites-enabled/ |
A következő Nginx parancs ellenőrzi a konfigurációs fájlok szintaktikai hibáit:
|
1 |
$ sudo nginx -t |
Ezután töltse újra az Nginx-et:
|
1 |
$ sudo systemctl reload nginx |
Az alkalmazásnak most már elérhetőnek kell lennie a tartománynév vagy az IP-cím használatával (ahogy azt a(z) server_name direktíva meghatározza):
6. lépés – A főoldal testreszabása
A Laravel alkalmazás konfigurálása után elkezdhetünk dolgozni rajta. Bemutató jelleggel itt az ideje, hogy létrehozzunk egy mintaoldalt, amely bemutatja a(z) places adatbázis-táblából származó mintaadatokat. Először nyissa meg a fő útvonalfájlt egy szövegszerkesztőben:
|
1 |
$ nano routes/web.php |
A fájl alapértelmezés szerint tartalmazni fog némi tartalmat. Itt az útvonalak a statikus metódus használatával vannak meghatározva (Route::get). Ez egy path és egy callback függvényt fogad argumentumként.
Cserélje ki a kódot a következőre:
|
1 2 3 4 5 6 7 |
<?php use Illuminate\Support\Facades\DB; Route::get('/', function () { $visited = DB::select('select * from places where visited = ?', [1]); $togo = DB::select('select * from places where visited = ?', [0]); return view('travellist', ['visited' => $visited, 'togo' => $togo ] ); }); |
Mentse el a fájlt, és zárja be a szerkesztőt. Ezután létrehozzuk az elrendezést az adatbázis-lekérdezés eredményeinek megjelenítéséhez a felhasználó számára. Hozzon létre egy új fájlt a következő könyvtárban: resource/views:
|
1 |
$ nano resources/views/travellist.blade.php |
A következő kódban két listát hoztunk létre a helyekről, a következő értékektől függően: visited és togo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<html> <head> <title>Utazási lista</title> </head> <body> <h1>Az utazási bakancslistám</h1> <h2>Meglátogatandó helyek</h2> <ul> @foreach ($togo as $newplace) <li>{{ $newplace->name }}</li> @endforeach </ul> <h2>Már meglátogatott</h2> <ul> @foreach ($visited as $place) <li>{{ $place->name }}</li> @endforeach </ul> </body> </html> |
Mentse el a fájlt, és zárja be a szerkesztőt. Most nyissa meg újra a webalkalmazás oldalát:
Voila! Most már van egy működő Laravel alkalmazásunk, amely MySQL adatbázist használ a tartalomhoz.
Záró gondolatok
Ebben az útmutatóban bemutattuk, hogyan kell beállítani egy Laravel alkalmazást az Ubuntu 20.04 szerveren futó LEMP szoftvercsomagon. Azt is bemutattuk, hogyan szabhatja testre az alapértelmezett útvonalat az adatbázis tartalmának lekérdezéséhez és az eredmények egyéni nézetben történő megjelenítéséhez. A Laravelről további információért tekintse meg a hivatalos dokumentációt a nézetek, útvonalak, valamint az adatbázis-támogatás témakörében..
Ebben az útmutatóban a telepítés egy önálló virtuális gépen történik. Azonban lehetősége van arra is, hogy telepítse a Laravelt LEMP szoftvercsomagra Dockerben.
Sikeres fejlesztést!









Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.