Hvernig á að setja upp Laravel PHP Framework með Nginx á CentOS 8


Laravel er opinn uppspretta, vel þekktur og nútímalegur PHP-undirstaða veframmi með svipmikilli, glæsilegri og auðskiljanlegri setningafræði sem gerir það auðvelt að smíða stór, öflug vefforrit.

Helstu eiginleikar þess eru meðal annars einföld, hröð leiðarvél, öflugur innspýtingarílát fyrir ósjálfstæði, margar bakenda fyrir setu- og skyndiminni geymslu, svipmikill og leiðandi gagnagrunn ORM (Object-relational Mapping), öflug bakgrunnsvinnsla og rauntíma viðburðaútsendingar.

Einnig notar það verkfæri eins og Composer - PHP pakkastjóra til að stjórna ósjálfstæði og Artisan - skipanalínuviðmót til að byggja og stjórna vefforritum.

Í þessari grein muntu læra hvernig á að setja upp nýjustu útgáfuna af Laravel PHP veframma á CentOS 8 Linux dreifingu.

Laravel ramminn hefur eftirfarandi kröfur:

  • PHP >= 7.2.5 með þessum PHP viðbótum OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype og JSON.
  • Tónskáld – til að setja upp og stjórna ósjálfstæðum.

Skref 1: Settu upp LEMP Stack í CentOS 8

1. Til að byrja, uppfærðu kerfishugbúnaðarpakka og settu upp LEMP stafla (Linux, Nginx, MariaDB/MySQL og PHP) með því að nota eftirfarandi dnf skipanir.

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

2. Þegar LEMP uppsetningunni er lokið þarftu að ræsa PHP-PFM, Nginx og MariaDB þjónustuna með því að nota eftirfarandi systemctl skipanir.

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

3. Næst þarftu að tryggja og herða MariaDB gagnagrunnsvélina með því að nota öryggishandritið eins og sýnt er.

# mysql_secure_installation

Svaraðu eftirfarandi spurningum til að tryggja uppsetningu netþjónsins.

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. Ef þú ert með eldveggsþjónustuna í gangi þarftu að opna HTTP og HTTPS þjónustuna í eldveggnum til að virkja biðlarabeiðnir til Nginx vefþjónsins.

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

5. Að lokum geturðu staðfest að LEMP staflan þín sé í gangi með því að nota vafra á IP tölu kerfisins þíns.

http://server-IP

Skref 2: Stilla og tryggja PHP-FPM og Nginx

6. Til að vinna úr beiðnum frá Nginx vefþjóninum getur PHP-FPM hlustað á Unix fals eða TCP fals og þetta er skilgreint af listen breytu í /etc/php-fpm.d/www.conf stillingarskránni.

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

Sjálfgefið er það stillt til að hlusta á Unix fals eins og sýnt er á eftirfarandi skjámynd. Gildið hér verður tilgreint í Nginx netþjónsblokkskránni síðar.

7. Ef þú notar Unix fals ættirðu líka að stilla rétt eignarhald og heimildir á henni eins og sýnt er á skjámyndinni. Taktu úr athugasemdum við eftirfarandi færibreytur og stilltu gildi þeirra á notandann og hópinn til að passa við notandann og hópinn sem Nginx keyrir sem.

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

8. Næst skaltu einnig stilla tímabeltið fyrir allt kerfið í /etc/php.ini stillingarskránni.

# vi /etc/php.ini

Leitaðu að línunni \;date.timezone” og afskrifaðu hana, stilltu síðan gildi hennar eins og sýnt er á skjámyndinni (notaðu gildi sem eiga við um þitt svæði/meðálfu og land).

 
date.timezone = Africa/Kampala

9. Til að draga úr hættunni á því að Nginx berist beiðnir frá illgjarnum notendum sem nota aðrar viðbætur til að keyra PHP kóða í PHP-FPM skaltu afskrifa eftirfarandi færibreytu og stilla gildi hennar á 0.

cgi.fix_pathinfo=1

10. Í tengslum við fyrri lið, slepptu einnig eftirfarandi færibreytu í /etc/php-fpm.d/www.conf skránni. Lestu athugasemdina til að fá frekari skýringar.

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

Skref 3: Uppsetning Composer og Laravel PHP Framework

11. Næst skaltu setja upp Composer pakkann með því að keyra eftirfarandi skipanir. Fyrsta skipunin hleður niður uppsetningarforritinu og keyrir það síðan með PHP.

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

12. Nú þegar Composer er uppsett, notaðu það til að setja upp Laravel skrár og ósjálfstæði eins og hér segir. Skiptu um mysite.com með nafni möppunnar þar sem Laravel skrárnar verða geymdar, alger slóðin (eða rótarslóðin í Nginx stillingarskrá) verður /var/www/html/mysite.com.

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

Ef allt gengur vel á meðan á ferlinu stendur, ætti að setja upp forritið með góðum árangri og lykill ætti að vera búinn til eins og sýnt er á eftirfarandi skjámynd.

13. Í uppsetningarferlinu var .env umhverfisskráin búin til og tilskilið forrit var einnig búið til, svo þú þarft ekki að búa þau til handvirkt eins og áður. Til að staðfesta þetta skaltu keyra langa skráningu af laravel rótarskránni með ls skipuninni.

# ls -la mysite.com/

14. Næst þarftu að stilla rétt eignarhald og heimildir á geymslunni og bootstrap/skyndiminni möppurnar til að vera skrifanlegar af Nginx vefþjóninum.

# 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. Ef SELinux er virkt á þjóninum þínum, ættir þú einnig að uppfæra öryggissamhengi geymslu- og ræsibúnaðar/skyndiminniskránna.

# 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'

Skref 4: Stilltu Nginx netþjónablokk fyrir Laravel

16. Til að Nginx geti byrjað að þjóna vefsíðunni þinni eða forriti þarftu að búa til netþjónsblokk fyrir það í .conf skrá undir /etc/nginx/conf.d/ möppu eins og sýnt er.

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

Afritaðu og límdu eftirfarandi uppsetningu í skrána. Taktu eftir breytunum rót og 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. Vistaðu skrána og athugaðu hvort setningafræði Nginx stillingar sé rétt með því að keyra.

# nginx -t

18. Endurræstu síðan PHP-FPM og Nginx þjónusturnar til að nýlegar breytingar taki gildi.

# systemctl restart php-fpm
# systemctl restart Nginx

Skref 5: Opnaðu Laravel vefsíðu úr vafra

19. Til að fá aðgang að Laravel vefsíðunni á mysite.com, sem er ekki fullgilt lén (FQDN) og það er ekki skráð (það er aðeins notað í prófunartilgangi), munum við nota /etc/hosts skrána á þinni staðbundnu vél. til að búa til staðbundið DNS.

Keyrðu eftirfarandi skipun til að bæta við IP tölu netþjóns og léni í nauðsynlega skrá (skipta um gildi í samræmi við stillingar þínar).

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

20. Næst skaltu opna vafra á staðbundinni vél og nota eftirfarandi heimilisfang til að fletta.

http://mysite.com

Þú hefur sett Laravel í notkun á CentOS 8. Þú getur nú byrjað að þróa vefsíðuna þína eða vefforrit með Laravel. Fyrir frekari upplýsingar, sjá Laravel Getting Started handbók.