Bii o ṣe le Fi sii Framework PHP Laravel pẹlu Nginx lori CentOS 8


Laravel jẹ orisun ṣiṣi, olokiki daradara, ati ilana oju opo wẹẹbu ti o da lori PHP pẹlu ifọrọhan, didara, ati irọrun lati ni oye sintasi eyiti o jẹ ki o rọrun lati kọ awọn ohun elo wẹẹbu nla, ti o lagbara.

Awọn ẹya ara ẹrọ bọtini rẹ pẹlu ẹrọ ti o rọrun, afisona ọna iyara, apo abẹrẹ igbẹkẹle ti o lagbara, awọn opin-ẹhin pupọ fun igba ati ibi ipamọ kaṣe, ṣafihan ati ipilẹ data oye ORM (Mapping-ibatan ibatan nkan), iṣelọpọ iṣẹ abẹlẹ to lagbara, ati igbohunsafefe iṣẹlẹ iṣẹlẹ gidi.

Pẹlupẹlu, o nlo awọn irinṣẹ bii Olupilẹṣẹ iwe - oluṣakoso package PHP fun iṣakoso awọn igbẹkẹle ati Artisan - wiwo ila-aṣẹ fun kikọ ati ṣakoso awọn ohun elo wẹẹbu.

Ninu nkan yii, iwọ yoo kọ bi o ṣe le fi sori ẹrọ ẹya tuntun ti ilana wẹẹbu Laravel PHP lori pinpin CentOS 8 Linux.

Ilana Laravel ni awọn ibeere wọnyi:

  • PHP> = 7.2.5 pẹlu awọn amugbooro PHP wọnyi OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype ati JSON.
  • Olupilẹṣẹ iwe - fun fifi sori ẹrọ ati ṣakoso awọn igbẹkẹle.

Igbesẹ 1: Fifi LEMP Stack ni CentOS 8

1. Lati bẹrẹ, ṣe imudojuiwọn awọn idii sọfitiwia eto ati fi akopọ LEMP sii (Lainos, Nginx, MariaDB/MySQL, ati PHP) ni lilo awọn ofin dnf wọnyi.

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

2. Nigbati fifi sori LEMP ba pari, o nilo lati bẹrẹ awọn iṣẹ PHP-PFM, Nginx ati MariaDB nipa lilo awọn ilana systemctl atẹle.

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

3. Itele, o nilo lati ni aabo ati lile ti ẹrọ ibi ipamọ data MariaDB nipa lilo iwe afọwọkọ aabo bi o ti han.

# mysql_secure_installation

Dahun awọn ibeere wọnyi lati ni aabo fifi sori ẹrọ olupin naa.

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. Ti o ba ni iṣẹ iṣẹ ina, o nilo lati ṣii iṣẹ HTTP ati HTTPS ninu ogiriina lati jẹki awọn ibeere alabara si olupin ayelujara Nginx.

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

5. Lakotan, o le jẹrisi pe akopọ LEMP rẹ nṣiṣẹ nipa lilo ẹrọ lilọ kiri ayelujara kan ni adiresi IP eto rẹ.

http://server-IP

Igbesẹ 2: Tito leto ati ni aabo PHP-FPM ati Nginx

6. Lati ṣe ilana awọn ibeere lati olupin ayelujara Nginx, PHP-FPM le tẹtisi lori iho Unix tabi iho TCP ati pe eyi ti ṣalaye nipasẹ paramita gbọ ni faili /etc/php-fpm.d/www.conf iṣeto ni.

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

Nipa aiyipada, o ti tunto lati tẹtisi lori iho Unix bi o ṣe han ninu sikirinifoto atẹle. Iye ti o wa nibi yoo ṣe apejuwe ninu faili bulọọki olupin Nginx nigbamii lori.

7. Ti o ba lo iho Unix, o yẹ ki o tun ṣeto nini ẹtọ ati awọn igbanilaaye lori rẹ bi o ṣe han ninu sikirinifoto. Uncomment awọn atẹle wọnyi ki o ṣeto awọn iye wọn si olumulo ati ẹgbẹ lati baamu olumulo ati ẹgbẹ Nginx n ṣiṣẹ bi.

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

8. Itele, tun ṣeto agbegbe aago eto-jakejado ni faili iṣeto /etc/php.ini.

# vi /etc/php.ini

Wa fun laini \"; date.timezone” ati aifọkanbalẹ rẹ, lẹhinna ṣeto iye rẹ bi o ṣe han ninu sikirinifoto (lo awọn iye ti o kan si agbegbe rẹ/agbegbe ati orilẹ-ede rẹ).

 
date.timezone = Africa/Kampala

9. Lati din eewu ti awọn ibeere ikọja Nginx kọja lati ọdọ awọn olumulo irira ti o lo awọn amugbooro miiran lati ṣe koodu PHP si PHP-FPM, ṣe aibikita abawọn atẹle naa ki o ṣeto iye rẹ si 0 .

cgi.fix_pathinfo=1

10. Ni ibatan si aaye ti tẹlẹ, tun ṣe aiṣedede paramita atẹle ni faili /etc/php-fpm.d/www.conf. Ka asọye fun alaye diẹ sii.

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

Igbesẹ 3: Fifi Olupilẹṣẹ Olupilẹṣẹ ati Framework PHP Laravel

11. Nigbamii, fi package Olupilẹṣẹ sii nipasẹ ṣiṣe awọn ofin wọnyi. Aṣẹ akọkọ ṣe igbasilẹ oluta, lẹhinna ṣiṣẹ nipa lilo PHP.

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

12. Bayi pe a ti fi Olupilẹṣẹ silẹ, lo lati fi awọn faili Laravel ati awọn igbẹkẹle sii bi atẹle. Rọpo mysite.com pẹlu orukọ itọsọna nibiti awọn faili Laravel yoo wa ni fipamọ, ọna pipe (tabi ọna gbongbo ni faili iṣeto Nginx) yoo jẹ /var/www/html/mysite.com.

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

Ti gbogbo wọn ba lọ daradara lakoko ilana, o yẹ ki a fi ohun elo naa sori ẹrọ ni aṣeyọri ati pe o yẹ ki o ṣẹda bọtini kan bi o ṣe han ninu sikirinifoto atẹle.

13. Lakoko ilana fifi sori ẹrọ, .env faili agbegbe ti ṣẹda ati ohun elo ti o nilo tun ti ipilẹṣẹ, nitorina o ko nilo lati ṣẹda wọn pẹlu ọwọ bi tẹlẹ. Lati jẹrisi eyi, ṣiṣe atokọ gigun ti itọsọna root laravel nipa lilo pipaṣẹ ls.

# ls -la mysite.com/

14. Nigbamii ti, o nilo lati tunto nini ti o tọ ati awọn igbanilaaye lori ibi ipamọ ati awọn ilana ilana bootstrap/kaṣe lati jẹ kikọ nipasẹ olupin ayelujara 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. Ti SELinux ba ṣiṣẹ lori olupin rẹ, o yẹ ki o tun ṣe imudojuiwọn ipo aabo ti ibi ipamọ ati awọn ilana ilana bootstrap/kaṣe.

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

Igbesẹ 4: Tunto Àkọsílẹ Server Nginx Fun Laravel

16. Fun Nginx lati bẹrẹ iṣẹ si oju opo wẹẹbu rẹ tabi ohun elo, o nilo lati ṣẹda bulọọki olupin fun u ni .conf faili labẹ /etc/nginx/conf.d/ itọsọna bi o ti han.

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

Daakọ ati lẹẹ iṣeto ni atẹle ni faili naa. Ṣe akiyesi gbongbo ati awọn iṣiro 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. Fipamọ faili naa ki o ṣayẹwo ti iṣatunṣe iṣeto Nginx ba pe nipa ṣiṣe.

# nginx -t

18. Lẹhinna tun bẹrẹ awọn iṣẹ PHP-FPM ati Nginx fun awọn ayipada to ṣẹṣẹ lati ni ipa.

# systemctl restart php-fpm
# systemctl restart Nginx

Igbesẹ 5: Wọle si Oju opo wẹẹbu Laravel lati Ẹrọ aṣawakiri Wẹẹbu kan

19. Lati wọle si oju opo wẹẹbu Laravel ni mysite.com, eyiti kii ṣe orukọ ìkápá ti o pe ni kikun (FQDN) ati pe ko forukọsilẹ (o kan lo fun awọn idi idanwo), a yoo lo faili/ati be be lo/awọn ogun lori ẹrọ agbegbe rẹ lati ṣẹda DNS agbegbe.

Ṣiṣe aṣẹ atẹle lati ṣafikun adirẹsi IP olupin ati ibugbe ninu faili ti a beere (rọpo iye ni ibamu si awọn eto rẹ).

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

20. Nigbamii, ṣii ẹrọ lilọ kiri lori ayelujara lori ẹrọ agbegbe ati lo adirẹsi atẹle lati lilö kiri.

http://mysite.com

O ti ṣaṣojuuṣe Laravel ni aṣeyọri lori CentOS 8. O le bẹrẹ bayi ni idagbasoke oju opo wẹẹbu rẹ tabi ohun elo wẹẹbu nipa lilo Laravel. Fun alaye diẹ sii, wo Itọsọna Bibẹrẹ Laravel.