Kako instalirati Laravel PHP Framework sa Nginxom na CentOS 8
Laravel je open-source, dobro poznat i moderan web okvir zasnovan na PHP-u sa izražajnom, elegantnom i lako razumljivom sintaksom koja olakšava izgradnju velikih, robusnih web aplikacija.
Njegove ključne karakteristike uključuju jednostavan, brz mehanizam za rutiranje, moćan kontejner za ubrizgavanje zavisnosti, višestruki back-end za pohranu sesija i keš memorije, ekspresivnu i intuitivnu bazu podataka ORM (Objektno-relacijsko mapiranje), robusnu obradu posla u pozadini i emitiranje događaja u realnom vremenu.
Takođe, koristi alate kao što su Composer – PHP menadžer paketa za upravljanje zavisnostima i Artisan – interfejs komandne linije za pravljenje i upravljanje web aplikacijama.
U ovom članku ćete naučiti kako da instalirate najnoviju verziju Laravel PHP web okvira na CentOS 8 Linux distribuciju.
Zahtjevi servera
Okvir Laravel ima sljedeće zahtjeve:
- PHP >= 7.2.5 sa ovim PHP ekstenzijama OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype i JSON.
- Composer – za instaliranje i upravljanje ovisnostima.
Korak 1: Instaliranje LEMP Stack-a u CentOS 8
1. Za početak, ažurirajte sistemske softverske pakete i instalirajte LEMP stack (Linux, Nginx, MariaDB/MySQL i PHP) koristeći sljedeće dnf komande.
dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd
2. Kada se LEMP instalacija završi, morate pokrenuti PHP-PFM, Nginx i MariaDB usluge koristeći sljedeće systemctl komande.
systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb
3. Zatim morate osigurati i ojačati MariaDB mehanizam baze podataka koristeći sigurnosnu skriptu kao što je prikazano.
mysql_secure_installation
Odgovorite na sljedeća pitanja kako biste osigurali instalaciju servera.
Enter current password for root (enter for none): Enter
Set root password? [Y/n] y
#set new root password Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
4. Ako imate pokrenutu uslugu firewalld, morate otvoriti HTTP i HTTPS uslugu u zaštitnom zidu da omogućite zahtjeve klijenata Nginx web serveru.
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
5. Konačno, možete potvrditi da vaš LEMP stog radi koristeći pretraživač na IP adresi vašeg sistema.
http://server-IP
Korak 2: Konfigurisanje i osiguranje PHP-FPM-a i Nginxa
6. Za obradu zahtjeva sa Nginx web servera, PHP-FPM može slušati na Unix utičnici ili TCP utičnici i to je definirano slušaj parametar u /etc/php-fpm.d/www.conf konfiguracijskom fajlu.
vi /etc/php-fpm.d/www.conf
Podrazumevano je konfigurisan da sluša na Unix socketu kao što je prikazano na sledećem snimku ekrana. Vrijednost ovdje će kasnije biti navedena u blok fajlu Nginx servera.
7. Ako koristite Unix socket, također biste trebali postaviti ispravno vlasništvo i dozvole na njemu kao što je prikazano na snimku ekrana. Dekomentirajte sljedeće parametre i postavite njihove vrijednosti za korisnika i grupu da odgovaraju korisniku i grupi Nginx radi kao.
listen.owner = nginx
listen.group = nginx
listen.mode = 066
8. Zatim postavite vremensku zonu za cijeli sistem u /etc/php.ini konfiguracijskoj datoteci.
vi /etc/php.ini
Potražite red “;date.timezone ”
i skinite komentar iz njega, a zatim postavite njegovu vrijednost kao što je prikazano na snimku ekrana (koristite vrijednosti koje se odnose na vaš region/kontinent i državu).
date.timezone = Africa/Kampala
9. Da biste smanjili rizik od Nginx prosljeđivanja zahtjeva od zlonamjernih korisnika koji koriste druge ekstenzije za izvršavanje PHP koda na PHP-FPM, dekomentirajte sljedeći parametar i postavite njegovu vrijednost na 0
.
cgi.fix_pathinfo=1
10. U odnosu na prethodnu tačku, također dekomentirajte sljedeći parametar u datoteci /etc/php-fpm.d/www.conf. Pročitajte komentar za više objašnjenja.
security.limit_extensions = .php .php3 .php4 .php5 .php7
Korak 3: Instaliranje Composer i Laravel PHP Framework
11. Zatim instalirajte paket Composer tako što ćete pokrenuti sljedeće komande. Prva komanda preuzima instalater, a zatim ga pokreće pomoću PHP-a.
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
12. Sada kada je Composer instaliran, koristite ga za instaliranje Laravel fajlova i zavisnosti kako slijedi. Zamijenite mysite.com imenom direktorija u kojem će Laravel datoteke biti pohranjene, apsolutna putanja (ili root staza u Nginx konfiguracijskoj datoteci) će biti /var/www/html/mysite .com.
cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com
Ako sve prođe kako treba tokom procesa, aplikacija bi trebala biti uspješno instalirana i ključ bi trebao biti generiran kao što je prikazano na sljedećem snimku ekrana.
13. Tokom procesa instalacije, kreiran je .env
fajl okruženja i generisana je potrebna aplikacija, tako da ne morate da ih kreirate ručno kao ranije. Da biste to potvrdili, pokrenite dugu listu korijenskog direktorija laravel koristeći naredbu ls.
ls -la mysite.com/
14. Zatim morate konfigurirati ispravno vlasništvo i dozvole za pohranu i bootstrap/cache direktorijume da ih Nginx web može pisati server.
chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/
15. Ako je SELinux omogućen na vašem serveru, također biste trebali ažurirati sigurnosni kontekst pohrane i bootstrap/cache > imenike.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'
Korak 4: Konfigurišite Nginx serverski blok za Laravel
16. Da bi Nginx počeo posluživati vašu web stranicu ili aplikaciju, morate kreirati serverski blok za nju u datoteci .conf
pod /etc/nginx/conf.d/ direktorij kao što je prikazano.
vi /etc/nginx/conf.d/mysite.com.conf
Kopirajte i zalijepite sljedeću konfiguraciju u datoteku. Obratite pažnju na root i fastcgi_pass parametre.
server {
listen 80;
server_name mysite.com;
root /var/www/html/mysite.com/public;
index index.php;
charset utf-8;
gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
location ~ /\.ht {
deny all;
}
}
17. Sačuvajte datoteku i provjerite da li je Nginx konfiguracijska sintaksa ispravna tako što ćete pokrenuti.
nginx -t
18. Zatim ponovo pokrenite PHP-FPM i Nginx usluge kako bi nedavne promjene stupile na snagu.
systemctl restart php-fpm
systemctl restart Nginx
Korak 5: Pristup Laravel web stranici iz web pretraživača
19. Za pristup Laravel web stranici na mysite.com, koja nije potpuno kvalificirani naziv domene (FQDN) i nije registrirana (koristi se samo u svrhe testiranja) , koristit ćemo datoteku /etc/hosts na vašoj lokalnoj mašini da kreiramo lokalni DNS.
Pokrenite sljedeću naredbu da dodate IP adresu servera i domenu u potrebnu datoteku (zamijenite vrijednost prema vašim postavkama).
ip add #get remote server IP
echo "10.42.0.21 mysite.com" | sudo tee -a /etc/hosts
20. Zatim otvorite web pretraživač na lokalnom računaru i koristite sljedeću adresu za navigaciju.
http://mysite.com
Uspješno ste postavili Laravel na CentOS 8. Sada možete početi razvijati svoju web stranicu ili web aplikaciju koristeći Laravel. Za više informacija pogledajte Vodič za početak rada za Laravel.