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.