Laravel PHP web çarçuwasyny CentOS-da nädip gurmaly


Laravel erkin açyk çeşme, täsirli we özüne çekiji sintaksis bilen güýçli PHP çarçuwasydyr. Ondan başlap häzirki zaman, ygtybarly we güýçli programmalary ösdürmek üçin arassalanan, ýönekeý we okalýan sintaksis bar. Mundan başga-da, Laravel arassa, döwrebap we dowam etdirip boljak PHP kody ýazmak üçin zerur birnäçe gurallary hödürleýär.

  • Maglumat bazasy bilen işlemek üçin güýçli ORM (Obýekt-baglanyşyk kartasy).
  • Çylşyrymly we çalt marşrut mehanizmi.
  • Güýçli garaşlylyk sanjym gapy.
  • Amazon SQS we Redis we başga-da köp sanly nobat arkalarynda bitewi API üpjün edýär, sessiýa we keş ýatda saklamak üçin.
  • simpleönekeý tanamak mehanizmini goldaýar.
  • Hakyky waka ýaýlymyny goldaýar.
  • Şeýle hem maglumatlar bazasynyň agnostiki göçümlerini we shema gurluşykçysyny goldaýar.
  • Fon işini gaýtadan işlemegi we başgalary goldaýar.

Laravel-iň iň soňky wersiýasyny işletmek üçin ulgamyňyz aşakdaky talaplary kanagatlandyrmalydyr:

  • PHP>=7.1.3 OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype we JSON PHP giňeltmeleri bilen.
  • Kompozitor - PHP üçin programma derejesindäki paket dolandyryjysy.

  1. CentOS 7 bilen LEMP Stack

Bu makalada CentOS, Red Hat, Fedora ulgamlarynda Laravel 5.6 PHP Çarçuwasynyň iň soňky wersiýasyny nädip gurmalydygyny düşündireris.

1-nji ädim: umum ammarlaryny guruň

1. Ilki bilen, Linux paýlanyşyňyzdaky REMI we EPEL ammarlaryny aşakdaky buýruklary ulanyp täzelenen paketlere (PHP, Nginx, MariaDB we ş.m.) elýeterli etmeli.

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

2-nji ädim: Nginx, MySQL we PHP guruň

2. Ondan soň, ulgamyňyza işleýän LEMP gurşawyny gurmalydyrys. Eger eýýäm işleýän LEMP stackiňiz bar bolsa, aşakdaky buýruklary ulanyp gurmasaňyz, bu ädimden geçip bilersiňiz.

# yum install nginx        [On CentOS/RHEL]

3. Nginx gurlansoň, web serwerini işe giriziň we ulgam ýüklemesinden başlaň we aşakdaky buýruklary ulanyp ýagdaýy barlaň.

------------- 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. Jemgyýetçilik ulgamyndan nginx-e girmek üçin daşarky islegleri görkezilişi ýaly ulgam diwar diwarynda 80 port açmaly.

------------- 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. Ondan soň, PHP-FPM hyzmatyny başlaň we işlediň we işleýändigini ýa-da ýokdugyny barlaň.

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

3-nji ädim: Kompozitor we Laravel PHP çarçuwasyny guruň

6. Indi aşakdaky buýruklary ulanyp, zerur Laravel baglylyklaryny gurmak üçin Kompozitor (PHP üçin garaşlylyk menejeri) guruň.

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

7. Kompozitor guranyňyzdan soň, aşakdaky ýaly kompozitor döretmek-taslama buýrugyny işledip, Laravel gurup bilersiňiz.

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

8. Indi web resminama köküňiziň uzyn sanawyny ýerine ýetireniňizde, synag faýllary öz içine alýan testite katalogy şol ýerde bolmaly.

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

4-nji ädim: Laravel gurnamasyny sazlaň

9. Indi aşakdaky buýruklary ulanyp, testite katalogyna we laravel faýllaryna degişli rugsatlary düzüň.

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

10. Mundan başga-da, SELinux-y işleden bolsaňyz, aşakdaky buýruklary ulanyp, ammar we bootstrap/keş bukjalarynyň howpsuzlyk kontekstini täzelemeli.

# 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. Soňra berlen nusga faýly ulanyp, programmaňyz üçin daşky gurşaw faýly dörediň.

# cp .env.example .env

12. Ondan soň, Laravel ulanyjy sessiýalaryny we beýleki şifrlenen maglumatlary goramak üçin programma açaryny ulanýar. Şonuň üçin aşakdaky buýrugy ulanyp, programma açaryňyzy tötänleýin setire düzmeli we sazlamaly.

# php artisan key:generate

5-nji ädim: Laravel üçin Nginx serwer blokuny sazlaň

13. Bu ädimde, web brauzerinden girmek üçin synag meýdançasy üçin Nginx serwer blokyny düzmeli. Görkezilişi ýaly /etc/nginx/conf.d/ katalogynyň aşagynda .conf faýly dörediň.

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

Oňa aşakdaky konfigurasiýany goşuň (daşky gurşawyňyza degişli bahalary ulanyň, bu mysalda, biziň domenimiz testlaravel.com synag edýär). Laravel indeks faýly/var/www/html/testite/public-de saklanýar, bu sahypaňyzyň/programmaňyzyň kökü bolar.

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;
	}
}

Faýly ýazdyryň we çykyň. Soňky üýtgeşmeleriň güýje girmegi üçin web serweriňizi täzeden açyň.

# systemctl restart nginx

6-njy ädim: Laravel web sahypasyna giriň

14. Ondan soň, doly hasaba alnan domen adyňyz ýok bolsa, synag maksatly ýerli DNS döretmek üçin/etc/host faýlyny ulanmaly.

Görkezilişi ýaly/etc/host faýlyňyza aşakdaky setiri goşuň (degişlilikde 192.168.43.31 ýerine ulgam IP adresini we domenini ulanyň we testlaravel.com).

192.168.43.31  testinglaravel.com

15. Ahyrynda aşakdaky URL ulanyp, brauzerden Laravel sahypaňyza giriň.

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

Locallyerli derejede ösýän bolsaňyz, aşakdaky ýaly programmaňyza ýa-da sahypaňyza hyzmat etmek üçin PHP-iň gurlan ösüş serwerini ulanyp bilersiňiz. Bu buýruk http:// localhost: 8000 ýa-da http://127.0.0.1:8000-de ösüş serwerine başlar. CentOS/REHL-de, bu port programmaňyzy şeýle hyzmat etmek üçin gorag diwarynda açylmalydyr.

# php artisan serve

Şu nukdaýnazardan gitmäge taýyn, sahypaňyzy ösdürip bilersiňiz. Keş, maglumat bazasy we sessiýa ýaly goşmaça konfigurasiýalar üçin Laravel baş sahypasyna girip bilersiňiz.

Laravel, amaly, häzirki zaman web ösüşi üçin täsirli we owadan sintaksis bilen PHP çarçuwasydyr. Gurmak wagtynda hemme zat gowy geçdi diýip umyt edýäris, ýok bolsa, soraglaryňyzy biziň bilen paýlaşmak üçin aşakdaky teswir formasyny ulanyň.