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> = 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.