Kif Tinstalla Laravel PHP Framework b'Nginx fuq CentOS 8


Laravel huwa qafas tal-web open-source, magħruf sew u modern ibbażat fuq PHP b'sintassi espressiva, eleganti u faċli biex tinftiehem li tagħmilha faċli biex jinbnew applikazzjonijiet tal-web kbar u robusti.

Il-karatteristiċi ewlenin tiegħu jinkludu magna ta 'rototing sempliċi u veloċi, kontenitur b'saħħtu ta' injezzjoni ta 'dipendenza, back-ends multipli għal ħażna ta' sessjoni u cache, database espressiva u intuwittiva ORM (Immappjar ta 'Oġġetti Relazzjonali), ipproċessar robust ta' xogħol fl-isfond, u xandir ta 'avvenimenti f'ħin reali.

Barra minn hekk, juża għodod bħal Composer - maniġer tal-pakkett PHP għall-ġestjoni tad-dipendenzi u Artisan - interface tal-linja tal-kmand għall-bini u l-ġestjoni tal-applikazzjonijiet tal-web.

F'dan l-artikolu, titgħallem kif tinstalla l-aħħar verżjoni tal-qafas tal-web Laravel PHP fuq id-distribuzzjoni CentOS 8 Linux.

Il-qafas Laravel għandu r-rekwiżiti li ġejjin:

  • PHP >= 7.2.5 b'dawn l-estensjonijiet PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype u JSON.
  • Kompożitur – għall-installazzjoni u l-ġestjoni tad-dipendenzi.

Pass 1: Installazzjoni ta 'LEMP Stack f'CentOS 8

1. Biex tibda, aġġorna l-pakketti tas-softwer tas-sistema u installa l-munzell LEMP (Linux, Nginx, MariaDB/MySQL, u PHP) billi tuża l-kmandi dnf li ġejjin.

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

2. Meta l-installazzjoni LEMP tkun kompluta, għandek bżonn tibda s-servizzi PHP-PFM, Nginx u MariaDB billi tuża l-kmandi systemctl li ġejjin.

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

3. Sussegwentement, għandek bżonn tiżgura u twebbis il-magna tad-database MariaDB billi tuża l-iskrittura tas-sigurtà kif muri.

# mysql_secure_installation

Wieġeb il-mistoqsijiet li ġejjin biex tiżgura l-installazzjoni tas-server.

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. Jekk għandek is-servizz firewalld qed jaħdem, għandek bżonn tiftaħ is-servizz HTTP u HTTPS fil-firewall biex tippermetti t-talbiet tal-klijenti lis-server tal-web Nginx.

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

5. Fl-aħħarnett, tista 'tikkonferma li l-munzell LEMP tiegħek qed jaħdem bl-użu ta' browser fl-indirizz IP tas-sistema tiegħek.

http://server-IP

Pass 2: Konfigurazzjoni u Żgurar ta 'PHP-FPM u Nginx

6. Biex tipproċessa talbiet mis-server tal-web Nginx, PHP-FPM jista 'jisma' fuq socket Unix jew socket TCP u dan huwa definit mill-parametru jisimgħu fil-fajl ta 'konfigurazzjoni /etc/php-fpm.d/www.conf.

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

B'mod awtomatiku, huwa kkonfigurat biex jisma' fuq socket Unix kif muri fil-screenshot li ġej. Il-valur hawnhekk se jiġi speċifikat fil-fajl tal-blokk tas-server Nginx aktar tard.

7. Jekk tuża socket Unix, għandek ukoll issettja s-sjieda u l-permessi korretti fuqha kif muri fil-screenshot. Neħħi l-kumment tal-parametri li ġejjin u ssettja l-valuri tagħhom lill-utent u lill-grupp biex jaqblu mal-utent u l-grupp li Nginx qed jaħdem kif.

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

8. Sussegwentement, issettja wkoll iż-żona tal-ħin tas-sistema kollha fil-fajl tal-konfigurazzjoni /etc/php.ini.

# vi /etc/php.ini

Fittex il-linja \;date.timezone” u neħħi l-kumment tagħha, imbagħad issettja l-valur tagħha kif muri fil-screenshot (uża valuri li japplikaw għar-reġjun/kontinent u pajjiż tiegħek).

 
date.timezone = Africa/Kampala

9. Biex itaffu r-riskju li Nginx jgħaddi talbiet minn utenti malizzjużi li jużaw estensjonijiet oħra biex jesegwixxu kodiċi PHP għal PHP-FPM, neħħi l-kumment tal-parametru li ġej u ssettja l-valur tiegħu għal 0.

cgi.fix_pathinfo=1

10. Fir-rigward tal-punt preċedenti, neħħi wkoll il-kumment tal-parametru li ġej fil-fajl /etc/php-fpm.d/www.conf. Aqra l-kumment għal aktar spjegazzjoni.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Pass 3: Installazzjoni tal-Kompożitur u Laravel PHP Framework

11. Sussegwentement, installa l-pakkett tal-Kompożitur billi tħaddem il-kmandi li ġejjin. L-ewwel kmand iniżżel l-installatur, imbagħad imexxih billi juża PHP.

# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer
# chmod +x /usr/local/bin/composer

12. Issa li l-Kompożitur huwa installat, użah biex tinstalla fajls u dipendenzi Laravel kif ġej. Ibdel mysite.com bl-isem tad-direttorju fejn se jinħażnu l-fajls Laravel, il-mogħdija assoluta (jew il-passaġġ tal-għeruq fil-fajl tal-konfigurazzjoni Nginx) se tkun /var/www/html/mysite.com.

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

Jekk kollox imur tajjeb matul il-proċess, l-applikazzjoni għandha tiġi installata b'suċċess u għandha tiġi ġġenerata ċavetta kif muri fil-screenshot li ġej.

13. Matul il-proċess ta 'installazzjoni, il-fajl ta' l-ambjent .env inħoloq u l-applikazzjoni meħtieġa ġiet iġġenerata wkoll, għalhekk m'għandekx bżonn toħloqhom manwalment bħal qabel. Biex tikkonferma dan, mexxi lista twila tad-direttorju tal-għeruq laravel billi tuża l-kmand ls.

# ls -la mysite.com/

14. Sussegwentement, għandek bżonn tikkonfigura s-sjieda u l-permessi korretti fuq il-ħażna u d-direttorji bootstrap/cache biex ikunu jistgħu jinkitbu mis-server tal-web Nginx.

# 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. Jekk SELinux ppermettiet fuq is-server tiegħek, għandek taġġorna wkoll il-kuntest tas-sigurtà tad-direttorji tal-ħażna u 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'

Pass 4: Ikkonfigura Nginx Server Block Għal Laravel

16. Biex Nginx jibda jservi l-websajt jew l-applikazzjoni tiegħek, għandek bżonn toħloq blokk tas-server għaliha f'fajl .conf taħt /etc/nginx/conf.d/ direttorju kif muri.

# vi /etc/nginx/conf.d/mysite.com.conf

Ikkopja u waħħal il-konfigurazzjoni li ġejja fil-fajl. Ħu nota tal-parametri root u 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. Issejvja l-fajl u ċċekkja jekk is-sintassi tal-konfigurazzjoni Nginx hijiex korretta billi taħdem.

# nginx -t

18. Imbagħad erġa ibda s-servizzi PHP-FPM u Nginx biex il-bidliet riċenti jidħlu fis-seħħ.

# systemctl restart php-fpm
# systemctl restart Nginx

Pass 5: Aċċess għall-Websajt Laravel minn Web Browser

19. Biex taċċessa l-websajt ta' Laravel fuq mysite.com, li mhuwiex isem ta' dominju kwalifikat bis-sħiħ (FQDN) u mhux irreġistrat (jintuża biss għal skopijiet ta' ttestjar), aħna se nużaw il-fajl /etc/hosts fuq il-magna lokali tiegħek biex toħloq DNS lokali.

Mexxi l-kmand li ġej biex iżżid l-indirizz IP tas-server u d-dominju fil-fajl meħtieġ (issostitwixxi l-valur skont is-settings tiegħek).

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

20. Sussegwentement, iftaħ web browser fuq il-magna lokali u uża l-indirizz li ġej biex tinnaviga.

http://mysite.com

Inti skjerajt b'suċċess Laravel fuq CentOS 8. Issa tista 'tibda tiżviluppa l-websajt jew l-applikazzjoni tal-web tiegħek billi tuża Laravel. Għal aktar informazzjoni, ara l-gwida dwar il-bidu ta’ Laravel.