Kif Tinstalla Laravel PHP Web Framework f'CentOS


Laravel huwa sors miftuħ b'xejn, qafas PHP b'saħħtu b'sintassi espressiva u attraenti. Għandu sintassi raffinata, sempliċi u li tinqara għall-iżvilupp ta' applikazzjonijiet moderni, robusti u b'saħħithom mill-art. Barra minn hekk, Laravel jipprovdi diversi għodod li għandek bżonn biex tikteb kodiċi PHP nadif, modern u li jista' jinżamm.

  • ORM (Object-Relational Mapping) b'saħħtu biex taħdem mad-database tiegħek.
  • Mekkaniżmu ta' routing mhux ikkumplikat u veloċi.
  • Kontenitur qawwi ta' injezzjoni ta' dipendenza.
  • Tipprovdi API unifikata f'diversi backends ta' kju inklużi Amazon SQS u Redis u ħafna aktar, għal ħażna ta' sessjoni u cache.
  • Jappoġġja mekkaniżmu ta' awtentikazzjoni sempliċi.
  • Jappoġġja xandir ta' avvenimenti f'ħin reali.
  • Jappoġġja wkoll migrazzjonijiet agnostiċi ta' database u bennej ta' skema.
  • Jappoġġja l-ipproċessar tal-impjiegi fl-isfond u aktar.

Is-sistema tiegħek trid tissodisfa r-rekwiżiti li ġejjin biex tkun tista' tħaddem l-aħħar verżjoni ta' Laravel:

  • PHP >= 7.1.3 b'Estensjonijiet PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype u JSON.
  • Kompożitur – maniġer tal-pakkett fil-livell tal-applikazzjoni għall-PHP.

  1. CentOS 7 b'LEMP Stack

F'dan l-artikolu, se nispjegaw kif tinstalla l-aħħar verżjoni ta 'Laravel 5.6 PHP Framework fuq CentOS, Red Hat, sistemi Fedora.

Pass 1: Setup Repożitorji Yum

1. L-ewwelnett, jeħtieġ li tippermetti r-repożitorji REMI u EPEL fid-distribuzzjoni tal-Linux tiegħek biex ikollok il-pakketti aġġornati (PHP, Nginx, MariaDB, eċċ.) billi tuża l-kmandi li ġejjin

------------- On CentOS/RHEL 7.x ------------- 
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------------- On CentOS/RHEL 6.x -------------
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Pass 2: Installa Nginx, MySQL u PHP

2. Sussegwentement, għandna bżonn ninstallaw ambjent LEMP li jaħdem fis-sistema tiegħek. Jekk diġà għandek munzell LEMP li jaħdem, tista 'taqbeż dan il-pass, jekk ma tinstallahx billi tuża l-kmandi li ġejjin.

# yum install nginx        [On CentOS/RHEL]

3. Ladarba nginx ikun ġie installat, imbagħad ibda s-server tal-web u ppermettih jibda fil-boot tas-sistema u mbagħad ivverifika l-istatus billi tuża l-kmandi li ġejjin.

------------- On CentOS/RHEL 7.x ------------- 
# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

------------- On CentOS/RHEL 6.x -------------
# service nginx start  
# chkconfig nginx on
# service nginx status

4. Biex taċċessa nginx minn netwerk pubbliku, għandek bżonn tiftaħ port 80 fuq il-firewall tas-sistema tiegħek biex tirċievi talbiet esterni kif muri.

------------- On CentOS/RHEL 7.x -------------
# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --reload 

------------- On CentOS/RHEL 6.x -------------
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# service iptables restart
# yum install mariadb-server php-mysql
# systemctl start mariadb.service
# /usr/bin/mysql_secure_installation
# yum install yum-utils
# yum-config-manager --enable remi-php72
# yum install php php-fpm php-common php-xml php-mbstring php-json php-zip

5. Sussegwentement, ibda u ppermettiet is-servizz PHP-FPM u iċċekkja jekk huwiex qed jaħdem.

------------- On CentOS/RHEL 7.x ------------- 
# systemctl start php-fpm
# systemctl enable php-fpm
# systemctl status php-fpm

------------- On CentOS/RHEL 6.x -------------
# service php-fpm start  
# chkconfig php-fpm on
# service php-fpm status

Pass 3: Installa Composer u Laravel PHP Framework

6. Issa installa Composer (maniġer tad-dipendenza għal PHP) għall-installazzjoni tad-dipendenzi meħtieġa ta 'Laravel billi tuża l-kmandi li ġejjin.

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

7. Ladarba tkun installat Composer, tista 'tinstalla Laravel billi tħaddem il-kmand tal-kompożitur toħloq-proġett, kif ġej.

# cd /var/www/html/
# sudo composer create-project --prefer-dist laravel/laravel testsite 

8. Issa meta tagħmel lista twila tal-għerq tad-dokument tal-web tiegħek, id-direttorju tas-sit tat-test għandu jkun hemm hemmhekk, li jkun fih il-fajls laravel tiegħek.

$ ls -l /var/www/html/testsite

Pass 4: Ikkonfigura l-Installazzjoni ta 'Laravel

9. Issa ssettja l-permessi xierqa fuq id-direttorju tas-sit tat-test u l-fajls laravel billi tuża l-kmandi li ġejjin.

# chmod -R 775 /var/www/html/testsite
# chown -R apache.apache /var/www/html/testsite
# chmod -R 777 /var/www/html/testsite/storage/

10. Barra minn hekk, jekk għandek SELinux attivat, għandek bżonn taġġorna l-kuntest tas-sigurtà tad-direttorji tal-ħażna u bootstrap/cache billi tuża l-kmandi li ġejjin.

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/testsite/bootstrap/cache(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/testsite/storage(/.*)?'
# restorecon -Rv '/usr/share/nginx/html/testapp'

11. Imbagħad oħloq fajl ambjentali għall-applikazzjoni tiegħek, billi tuża l-kampjun tal-fajl ipprovdut.

# cp .env.example .env

12. Sussegwentement, Laravel juża ċavetta ta 'applikazzjoni biex jiżgura sessjonijiet ta' utent u data oħra kriptata. Allura għandek bżonn tiġġenera u tissettja ċ-ċavetta tal-applikazzjoni tiegħek għal string każwali billi tuża l-kmand li ġej.

# php artisan key:generate

Pass 5: Ikkonfigura Nginx Server Block Għal Laravel

13. F'dan il-pass, għandek bżonn tikkonfigura blokka ta 'server Nginx għal testsite, sabiex ikollok aċċess għaliha minn web browser. Oħloq fajl .conf għalih taħt id-direttorju /etc/nginx/conf.d/ kif muri.

# vi /etc/nginx/conf.d/testsite.conf

U żid il-konfigurazzjoni li ġejja fiha (uża valuri applikabbli għall-ambjent tiegħek, f'dan l-eżempju, id-dominju finta tagħna huwa testinglaravel.com). Innota li l-fajl tal-indiċi laravel huwa maħżun f'/var/www/html/testsite/public, dan ikun l-għerq tas-sit/applikazzjoni tiegħek.

server {
	listen      80;
	server_name testinglaravel.com;
	root        /var/www/html/testsite/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:/var/run/php/php7.2-fpm.sock;
	}
	location ~ /\.ht {
		deny all;
	}
}

Issejvja l-fajl u oħroġ. Imbagħad erġa ibda s-server tal-web tiegħek biex il-bidliet riċenti jidħlu fis-seħħ.

# systemctl restart nginx

Pass 6: Aċċessa għall-Websajt Laravel

14. Sussegwentement, jekk ma jkollokx isem ta' dominju kompletament irreġistrat, trid tuża l-fajl /etc/hosts biex toħloq DNS lokali għal skopijiet ta' ttestjar.

Żid il-linja li ġejja fil-fajl /etc/hosts tiegħek kif muri (uża l-indirizz IP u d-dominju tas-sistema tiegħek minflok 192.168.43.31 u testinglaravel.com rispettivament).

192.168.43.31  testinglaravel.com

15. Fl-aħħarnett aċċess għas-sit Laravel tiegħek minn browser, billi tuża l-URL li ġej.

http://testinglaravel.com
OR
http://your-ip-address

Jekk qed tiżviluppa lokalment, tista 'timpjega s-server ta' żvilupp inkorporat tal-PHP biex isservi l-applikazzjoni jew is-sit tiegħek, kif ġej. Dan il-kmand se jibda server ta 'żvilupp fuq http://localhost:8000 jew http://127.0.0.1:8000. Fuq CentOS/REHL, dan il-port għandu jinfetaħ fil-firewall biex inti sservi l-applikazzjoni tiegħek b'dan il-mod.

# php artisan serve

Minn dan il-punt, inti lest biex tmur, tista 'tibda tiżviluppa s-sit tiegħek. Għal konfigurazzjonijiet addizzjonali bħal cache, database u sessjonijiet, tista 'tmur fil-homepage ta' Laravel.

Laravel huwa qafas PHP b'sintassi espressiva u sabiħa għal żvilupp tal-web prattiku u modern. Nittamaw li kollox mexa tajjeb matul l-installazzjoni, jekk le, uża l-formola tal-kummenti hawn taħt biex taqsam il-mistoqsijiet tiegħek magħna.