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.

  1. CentOS 8 serweriniň işleýän mysaly.
  2. PHP 5.4.0 ýa-da ondan ýokary LEMP ýygyndysy.
  3. 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 http://www.example.com/index.php URL arkaly Yii web programmasyna hyzmat etmek üçin sazlap bilersiňiz. www.example.com/basic/testapp/index.php . Bu ýagdaýda web serweriňiziň resminama köküni 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ň.