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.