Kako instalirati Laravel PHP Framework s Nginxom na CentOS 8


Laravel je otvoreni izvor, dobro poznat i moderan web okvir zasnovan na PHP-u s izražajnom, elegantnom i lako razumljivom sintaksom što olakšava izgradnju velikih, robusnih web aplikacija.

Njegove ključne značajke uključuju jednostavan, brzi usmjerivač, snažni spremnik za ubrizgavanje ovisnosti, više pozadinskih prostora za pohranu sesija i predmemorije, izražajnu i intuitivnu ORM bazu podataka (objektno-relacijsko mapiranje), robusnu obradu zadataka 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 izgradnju i upravljanje web aplikacijama.

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

Okvir Laravel ima sljedeće zahtjeve:

  • PHP> u003d 7.2.5 s ovim PHP proširenjima OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype i JSON.
  • Skladatelj - za instaliranje i upravljanje ovisnostima.

Korak 1: Instaliranje LEMP stoga u CentOS 8

1. Za početak ažurirajte sistemske softverske pakete i instalirajte LEMP stog (Linux, Nginx, MariaDB/MySQL i PHP) pomoću sljedećih dnf naredbi.

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

2. Kada je instalacija LEMP-a dovršena, morate pokrenuti usluge PHP-PFM, Nginx i MariaDB koristeći sljedeće naredbe systemctl.

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

3. Dalje, trebate osigurati i učvrstiti mehanizam baze podataka MariaDB pomoću sigurnosne skripte kako 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 vatrozida, u vatrozidu morate otvoriti HTTP i HTTPS uslugu kako biste omogućili zahtjeve klijenta za web server Nginx.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

5. Napokon, možete potvrditi da vaš LEMP stog radi pomoću preglednika na IP adresi vašeg sustava.

http://server-IP

Korak 2: Konfiguriranje i osiguravanje PHP-FPM i Nginx

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

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

Prema zadanim postavkama konfigurirano je za preslušavanje na Unix utičnici kako je prikazano na sljedećem snimku zaslona. Ovdje će vrijednost kasnije biti navedena u datoteci bloka Nginx poslužitelja.

7. Ako koristite Unix utičnicu, trebali biste također postaviti ispravno vlasništvo i dozvole za nju, kao što je prikazano na snimci zaslona. Otkomentirajte sljedeće parametre i postavite njihove vrijednosti na korisnika i grupu kako bi se podudarali s korisnikom i grupom Nginx radi kao.

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

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

# vi /etc/php.ini

Potražite redak "; date.timezone" i rakomentirajte ga, a zatim postavite njegovu vrijednost kao što je prikazano na snimci zaslona (koristite vrijednosti koje se odnose na vašu regiju/kontinent i zemlju).

 
date.timezone = Africa/Kampala

9. Da biste umanjili rizik da Nginx prosljeđuje zahtjeve od zlonamjernih korisnika koji koriste druga proširenja za izvršavanje PHP koda na PHP-FPM, uklonite komentar iz sljedećeg parametra i postavite vrijednost na 0 .

cgi.fix_pathinfo=1

10. U odnosu na prethodnu točku, također komentirajte 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 izvođenjem sljedećih naredbi. Prva naredba preuzima instalacijski program, 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 datoteka i ovisnosti Laravel na sljedeći način. Zamijenite mysite.com imenom direktorija u kojem će biti pohranjene datoteke Laravel, apsolutni put (ili korijenski put u konfiguracijskoj datoteci Nginx) bit će /var/www/html/mysite.com.

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

Ako tijekom procesa sve bude u redu, aplikaciju treba uspješno instalirati i generirati ključ kao što je prikazano na sljedećem snimku zaslona.

13. Tijekom postupka instalacije stvorena je datoteka okoliša .env , a generirana je i potrebna aplikacija, tako da ih ne morate ručno stvarati kao prije. Da biste to potvrdili, pokrenite dugački popis korijenskog direktorija laravel pomoću naredbe ls.

# ls -la mysite.com/

14. Dalje, trebate konfigurirati ispravno vlasništvo i dozvole na pohrani i direktorijama bootstrap/cache kako bi ih Nginx web poslužitelj mogao pisati.

# 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 na vašem poslužitelju omogućen SELinux, trebali biste također ažurirati sigurnosni kontekst direktorija za pohranu i bootstrap/cache.

# 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 blok Nginx poslužitelja za Laravel

16. Da bi Nginx počeo posluživati vaše web mjesto ili aplikaciju, za njega morate stvoriti blok poslužitelja u datoteci .conf u direktoriju /etc/nginx/conf.d/, 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 pokrenite provjerite je li sintaksa konfiguracije Nginx točna.

# 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 web mjestu Laravel iz web preglednika

19. Za pristup web mjestu Laravel na mysite.com, koje nije potpuno kvalificirano ime domene (FQDN) i nije registrirano (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 da biste dodali IP adresu i domenu poslužitelja u potrebnu datoteku (vrijednost zamijenite 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 započeti razvoj svoje web stranice ili web aplikacije pomoću Laravela. Za više informacija pogledajte vodič za početak rada Laravel.