CentOS 8-de Yii PHP çarçuwasyny nädip gurmaly
Yii häzirki zaman web programmalaryny çalt gurmak üçin açyk çeşme, ýokary öndürijilikli, çeýe, täsirli we ygtybarly PHP çarçuwasydyr. Obýekte gönükdirilen görnüşde kod ýazmak üçin umumy we doly görnüşli web programmirleme çarçuwasy bolup, köp subut edilen we ulanmaga taýyn aýratynlyklary üpjün edýär. Gaty we ygtybarly kod ýazmaga kömek edýän birnäçe esasly defoltlar we gurlan gurallar bar.
Yii-iň esasy aýratynlyklary:
- Arassa OOP esasly çarçuwa.
- Komponent esasly arhitektura.
- MVC (Model-View-Controller) binagärlik nagşyny durmuşa geçirýär.
- Baglanyşyk we NoSQL maglumat bazalary üçin talap gurluşykçylaryny we ActiveRecord-y goldaýar.
- Köp derejeli keş keşdesi.
- RESTful API ösüş goldawy.
- Ulanyjylara islendik kod bölegini özeninden düzmäge ýa-da çalyşmaga mümkinçilik berýän gaty giňelýär. Mundan başga-da, ulanyjylar paýlanylýan giňeltmeleri ulanyp ýa-da ösdürip bilerler.
Yii 2.0, PHP 5.4.0 ýa-da ondan ýokary talap edýän, ýöne PHP 7-iň iň soňky wersiýasy bilen iň oňat işleýän çarçuwanyň häzirki nesli (Kompozitor, PSR) ýaly iň täze web tehnologiýalaryny we protokollaryny goldaýar. , at giňişlikleri, häsiýetleri we başgalar.
Möhüm aýratynlyklary bilen bilelikde umumy web ösüş çarçuwasy bolmak bilen, Yii ulanyjy/administrator portallaryndan, forumlardan, mazmun dolandyryş ulgamlaryndan (CMS), elektron söwda taslamalaryna, RESTful Web hyzmatlaryna çenli islendik web programmalaryny ösdürmek üçin ulanylyp bilner. we has uly göwrümde.
- CentOS 8 serweriniň işleýän mysaly.
- PHP 5.4.0 ýa-da ondan ýokary LEMP ýygyndysy.
- Kompozitor - PHP üçin programma derejesindäki paket dolandyryjysy.
Bu makalada, Yii ulanyp, PHP programmalaryny ösdürip başlamak üçin CentOS 8 serwerinde Yii PHP çarçuwasyny nädip gurmalydygyny görkezeris.
Kompozitor ulanyp Yii gurmak
“Yii” -ni gurmagyň birnäçe usuly bar, ýöne “Yii” -ni gurmagyň maslahat berilýän usuly, “Yii” -ni bir buýruk bilen täzelemäge mümkinçilik berýän we täze giňeltmeler gurmaga mümkinçilik berýän “Composer” paket dolandyryjysyny ulanýar.
CentOS 8 serweriňizde eýýäm kompozitor gurulmadyk bolsa, aşakdaky buýruklary işledip gurup bilersiňiz.
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer # chmod +x /usr/local/bin/composer
Kompozitor gurlup, Yii programma şablonynyň iň soňky durnukly wersiýasyny testapp
atly Apache ýa-da Nginx web elýeterli katalogynyň aşagynda gurup bilersiňiz. Isleseňiz başga bir katalog adyny saýlap bilersiňiz.
# cd /var/www/html/ [Apache Root Directory] OR # cd /usr/share/nginx/html/ [Nginx Root Directory] # composer create-project --prefer-dist yiisoft/yii2-app-basic testapp
Gurmak tamamlanandan soň, web serweriňizi düzüň (indiki bölüme serediň) ýa-da testapp
taslama kök katalogynda aşakdaky buýrugy ýerine ýetirip, integrirlenen PHP web serwerini ulanyň.
# cd testapp # php yii serve
Bellik: Düzgüne görä, HTTP-serwer 8080-nji porty diňlär. Şeýle-de bolsa, bu port eýýäm ulanylýan bolsa, görkezilişi ýaly argumenti --port
goşup, başga porty ulanyp bilersiňiz.
# php yii serve --port=8888
Indi, brauzeriňizi açyň we gurlan Yii programmasyna girmek üçin aşakdaky URL ýazyň.
http://localhost:8888
Yii üçin web serwerlerini sazlamak
Önümçilik serwerinde, web serweriňizi http:// ýerine derek
. Bu ýagdaýda web serweriňiziň resminama köküni http://www.example.com/index.php
URL arkaly Yii web programmasyna hyzmat etmek üçin sazlap bilersiňiz. www.example.com/basic/testapp/index.php testapp/web
katalogyna görkezmeli.
/Etc/nginx/conf.d/testapp.conf atly konfigurasiýa faýly dörediň.
# vi /etc/nginx/conf.d/testapp.conf
Ondan soň, aşakdaky konfigurasiýany göçüriň. tecmintapp.lan
domen adyňyz we /usr/share/nginx/html/testapp/web
programma faýllaryňyzyň ýerleşýän ýeri bilen çalyşmagy ýatdan çykarmaň.
server { charset utf-8; client_max_body_size 128M; listen 80; ## listen for ipv4 #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 server_name tecmintapp.lan; root /usr/share/nginx/html/testapp/web; index index.php; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { # Redirect everything that isn't a real file to index.php try_files $uri $uri/ /index.php$is_args$args; } # uncomment to avoid processing of calls to non-existing static files by Yii #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { # try_files $uri =404; #} #error_page 404 /404.html; # deny accessing php files for the /assets directory location ~ ^/assets/.*\.php$ { deny all; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/run/php-fpm/www.sock; try_files $uri =404; } location ~* /\. { deny all; } }
Faýly ýazdyryň we soňky üýtgeşmeleri amala aşyrmak üçin Nginx-i täzeden açyň.
# systemctl restart nginx
Apache-iň httpd.conf faýlynda ýa-da wirtual host konfigurasiýasynda aşakdaky konfigurasiýany ulanyň.
# Set document root to be "testapp/web" DocumentRoot "/var/www/html/testapp/web" <Directory "/var/www/html/testapp/web"> # use mod_rewrite for pretty URL support RewriteEngine on # if $showScriptName is false in UrlManager, do not allow accessing URLs with script name RewriteRule ^index.php/ - [L,R=404] # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # ...other settings... </Directory>
Faýly ýazdyryň we soňky üýtgeşmeleri amala aşyrmak üçin Apache-i täzeden açyň.
# systemctl restart httpd
Brauzer arkaly Yii web programmasyny barlamak
Yii web programmamyzy barlamazdan ozal, aşakdaky buýrugy işledip, web prosesine ýazyp boljak bolmagy üçin /web/assets/
katalogynyň howpsuzlyk kontekstini täzeläň.
# chcon -R -t httpd_sys_content_rw_t '/usr/share/nginx/html/testapp/web/assets/' [for Nginx] # chcon -R -t httpd_sys_content_rw_t '/var/www/html/testapp/web/assets/' [for Apache]
Ondan soň, gorag diwary arkaly Nginx serwerine HTTP we HTTPS isleglerine rugsat bermek üçin firewalld düzgünleriňizi täzeläň.
# firewall-cmd --zone=public --add-service=http --permanent # firewall-cmd --zone=public --add-service=https --permanent # firewall-cmd --reload
Netijede, web programmaňyzyň gowy işleýändigini we Nginx ýa-da Apache tarapyndan hyzmat edilýändigini barlaň. Web brauzerini açyň we aşakdaky adrese görkeziň:
http://tecmintapp.lan
Adaty Yii amaly web sahypasy, aşakdaky skrinshotda görkezilişi ýaly görkezilmelidir.
Gutlaýarys! Yii PHP çarçuwasynyň iň soňky neslini üstünlikli gurnadyňyz we Centgin 8-de Nginx ýa-da Apache bilen işlemek üçin sazladyňyz.
Web programmaňyzy gurmak üçin Yii ulanyp başlamak barada has giňişleýin maglumat üçin Yii kesgitli gollanmasyna serediň.