Kako instalirati Laravel PHP Framework s Nginxom na CentOS 8


Laravel je dobro poznati i moderni web okvir otvorenog koda koji se temelji na PHP-u s ekspresivnom, elegantnom i lako razumljivom sintaksom koja olakšava izradu velikih, robusnih web aplikacija.

Njegove ključne značajke uključuju jednostavan, brz mehanizam za usmjeravanje, moćan spremnik za umetanje ovisnosti, višestruke pozadine za pohranu sesije i predmemorije, izražajnu i intuitivnu bazu podataka ORM (Object-relational Mapping), robusnu pozadinsku obradu poslova i emitiranje događaja u stvarnom vremenu.

Također, koristi alate kao što su Composer – PHP upravitelj paketa za upravljanje ovisnostima i Artisan – sučelje naredbenog retka za izradu i upravljanje web aplikacijama.

U ovom ćete članku naučiti kako instalirati najnoviju verziju web okvira Laravel PHP na distribuciju Linuxa CentOS 8.

Zahtjevi poslužitelja

Okvir Laravel ima sljedeće zahtjeve:

  • PHP >= 7.2.5 s ovim PHP proširenjima OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype i JSON.
  • Composer – za instaliranje i upravljanje ovisnostima.

Korak 1: Instalirajte LEMP Stack u CentOS 8

1. Za početak ažurirajte softverske pakete sustava i instalirajte hrpu LEMP (Linux, Nginx, MariaDB/MySQL i PHP) koristeći sljedeće dnf naredbe.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Kada instalacija LEMP završi, morate pokrenuti PHP-PFM, Nginx i MariaDB usluge pomoću sljedećih systemctl naredbi.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. Zatim trebate osigurati i ojačati pogon baze podataka MariaDB pomoću sigurnosne skripte kao što je prikazano.

mysql_secure_installation

Odgovorite na sljedeća pitanja kako biste osigurali instalaciju poslužitelja.

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, trebate otvoriti usluge HTTP i HTTPS u vatrozidu kako biste omogućili klijentske zahtjeve Nginx web poslužitelju.

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 pomoću preglednika na IP adresi vašeg sustava.

http://server-IP

Korak 2: Konfiguriranje i osiguranje PHP-FPM i Nginx

6. Za obradu zahtjeva s Nginx web poslužitelja, PHP-FPM može slušati Unix utičnicu ili TCP utičnicu i to je definirano Parametar listen u /etc/php-fpm.d/www.conf konfiguracijskoj datoteci.

vi /etc/php-fpm.d/www.conf

Prema zadanim postavkama, konfiguriran je za slušanje na Unix utičnici kao što je prikazano na sljedećoj snimci zaslona. Ovdje će vrijednost biti navedena u blok datoteci poslužitelja Nginx kasnije.

7. Ako koristite Unix utičnicu, trebali biste također postaviti ispravno vlasništvo i dopuštenja za nju kao što je prikazano na snimci zaslona. Odkomentirajte sljedeće parametre i postavite njihove vrijednosti na korisnika i grupu kako bi odgovarale korisniku i grupi pod kojima Nginx radi.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. Zatim također postavite vremensku zonu za cijeli sustav u /etc/php.ini konfiguracijskoj datoteci.

vi /etc/php.ini

Potražite redak “;date.timezone ” i odkomentirajte ga, zatim postavite njegovu vrijednost kao što je prikazano na snimci zaslona (koristite vrijednosti koje se odnose na vašu regiju/kontinent i državu).

 
date.timezone = Africa/Kampala

9. Kako biste smanjili rizik od Nginx-a prosljeđivanja zahtjeva od zlonamjernih korisnika koji koriste druga proširenja za izvršavanje PHP koda u PHP-FPM, uklonite komentar sa sljedećeg parametra i postavite njegovu vrijednost na 0.

cgi.fix_pathinfo=1

10. U odnosu na prethodnu točku, također odkomentirajte 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: Instalacija Composer i Laravel PHP Framework

11. Zatim instalirajte paket Composer pokretanjem sljedećih naredbi. Prva naredba preuzima instalacijski program, a zatim ga pokreće koristeći PHP.

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 datoteka i ovisnosti na sljedeći način. Zamijenite mysite.com nazivom direktorija u kojem će biti pohranjene Laravel datoteke, apsolutni put (ili korijenski put u Nginx konfiguracijskoj datoteci) bit će /var/www/html/mysite .com.

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

Ako sve prođe dobro tijekom procesa, aplikacija bi trebala biti uspješno instalirana i ključ bi trebao biti generiran kao što je prikazano na sljedećoj snimci zaslona.

13. Tijekom procesa instalacije stvorena je datoteka okruženja .env i generirana je potrebna aplikacija, tako da ih ne morate ručno kreirati kao prije. Da biste to potvrdili, pokrenite dugi popis laravel korijenskog direktorija pomoću naredbe ls.

ls -la mysite.com/

14. Zatim trebate konfigurirati ispravno vlasništvo i dopuštenja za pohranu i bootstrap/cache direktorije kako bi Nginx web mogao pisati poslužitelj.

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 poslužitelju, također biste trebali ažurirati sigurnosni kontekst pohrane i bootstrap/cache imenici.

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: Konfigurirajte Nginx poslužiteljski blok za Laravel

16. Da bi Nginx počeo opsluživati vašu web stranicu ili aplikaciju, trebate izraditi blok poslužitelja 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 parametre root i fastcgi_pass.

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. Spremite datoteku i provjerite je li konfiguracijska sintaksa Nginx ispravna pokretanjem.

nginx -t

18. Zatim ponovno pokrenite usluge PHP-FPM i Nginx kako bi nedavne promjene stupile na snagu.

systemctl restart php-fpm
systemctl restart Nginx

Korak 5: Pristup Laravel web stranici iz web preglednika

19. Za pristup Laravel web stranici na mysite.com, koja nije potpuno kvalificirani naziv domene (FQDN) i nije registrirana (koristi se samo u svrhu testiranja) , koristit ćemo datoteku /etc/hosts na vašem lokalnom računalu za stvaranje lokalnog DNS-a.

Pokrenite sljedeću naredbu za dodavanje IP adrese i domene poslužitelja u traženu datoteku (zamijenite vrijednost prema svojim postavkama).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. Zatim otvorite web preglednik na lokalnom računalu i koristite sljedeću adresu za navigaciju.

http://mysite.com

Uspješno ste implementirali Laravel na CentOS 8. Sada možete početi razvijati svoje web mjesto ili web aplikaciju koristeći Laravel. Za više informacija pogledajte Laravel vodič za početak.