Yadda ake Shigar da Tsarin PHP na Yii akan CentOS 8


Yii hanya ce mai buɗewa, aiki mai kyau, sassauƙa, ingantacce kuma amintaccen tsarin PHP don saurin gina aikace-aikacen gidan yanar gizo cikin sauri. Tsarin tsari ne na tsari na yanar gizo mai cikakken tsari don lambar rubutu a cikin yanayin daidaitaccen abu kuma yana ba da fasaloli da yawa da aka tabbatar da shirye-shiryen amfani. Ya zo tare da wasu ƙididdiga masu dacewa da kuma kayan aikin da aka gina don taimaka muku rubutu mai ƙarfi da amintacce.

Anan ga wasu mahimman fasali na Yii:

  • Tsarin tsari mai kyau na OOP.
  • Tsarin gine-ginen abubuwa.
  • Ana aiwatar da MVC (Mai Kula-Da-Mai-Kulawa) tsarin gine-ginen.
  • Yana tallafa wa magina masu tambaya da ActiveRecord don duka dangantaka da kuma bayanan NoSQL.
  • Taimako caching da yawa.
  • SAURAN ci gaban haɓakar API.
  • Yana da matuƙar faɗi wanda zai ba masu amfani damar tsara ko maye gurbin kowane yanki na lambar dama daga ainihin. Bayan haka, masu amfani za su iya amfani da ko haɓaka haɓakawa mai sake rarrabawa.

Yii 2.0 shine ƙarni na yanzu na tsari (a lokacin rubuce-rubuce) wanda ke buƙatar PHP 5.4.0 ko sama amma yana aiki mafi kyau tare da sabon sigar PHP 7. Yana tallafawa wasu sabbin fasahohin yanar gizo da ladabi, gami da Composer, PSR , wuraren sarauta, halaye, da sauransu.

Kasancewa tsarin ci gaban yanar gizo gaba ɗaya tare da mahimman fasalolin sa, ana iya amfani da Yii don haɓaka kusan kowane nau'ikan aikace-aikacen gidan yanar gizo daga hanyoyin mai amfani/gudanarwa, tarurruka, tsarin sarrafa abun ciki (CMS), zuwa ayyukan e-commerce, Sabis ɗin Yanar gizo mafi kyawu, kuma yafi yawa a sikeli.

  1. Misali mai gudana na uwar garken CentOS 8.
  2. Matsayin LEMP tare da PHP 5.4.0 ko sama.
  3. Mai tsarawa - mai gudanar da matakan aikace-aikace na PHP.

A cikin wannan labarin, zamu nuna muku yadda ake girka tsarin Yii PHP akan sabar CentOS 8 don fara haɓaka aikace-aikacen PHP ta amfani da Yii.

Shigar da Yii Ta Amfani da Mawaki

Akwai hanyoyi da yawa don girka Yii, amma hanyar da aka ba da shawarar shigar da Yii tana amfani da mai sarrafa kunshin Composer, saboda yana ba ku damar sabunta Yii tare da umarni ɗaya kuma yana ba ku damar shigar da sabbin kari.

Idan baku riga kun sanya Composer akan sabarku ta CentOS 8 ba, zaku iya girka ta ta hanyar kunna wadannan umarni.

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

Tare da shigarda Composer, zaka iya girka sabuwar kwarjini na samfurin aikace-aikacen Yii a karkashin Apache ko Nginx Web-directory directory da ake kira testapp . Zaka iya zaɓar sunan kundin adireshi daban idan kanaso.

# 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

Bayan an gama shigarwa, ko dai saita sabar yanar gizan ku (duba sashe na gaba) ko amfani da sabar yanar gizo ta PHP ta hanyar aiwatar da umarni mai zuwa a cikin testapp tushen tushen aikin.

# cd testapp
# php yii serve

Lura: Ta tsohuwa, HTTP-uwar garken zai saurari tashar 8080. Koyaya, idan ana amfani da wannan tashar, zaku iya amfani da tashar ta daban ta ƙara --port muhawarar kamar yadda aka nuna.

# php yii serve --port=8888

Yanzu, buɗe burauzarka ka buga URL na gaba don samun damar shigarwar aikace-aikacen Yii.

http://localhost:8888

Saitin Sabis ɗin Yanar Gizon don Yii

A kan sabar samarwa, kuna so ku saita masu amfani da yanar gizon ku don yin amfani da aikace-aikacen gidan yanar gizo na Yii ta hanyar adireshin URL http://www.example.com/index.php maimakon http:// www.example.com/basic/testapp/index.php . A wannan yanayin, dole ne a nuna tushen daftarin aiki na sabar yanar gizonku zuwa adireshin testapp/yanar gizo .

Irƙiri fayil ɗin sanyi da ake kira /etc/nginx/conf.d/testapp.conf.

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

Na gaba, kwafa da liƙa bayanan da ke gaba a ciki. Ka tuna maye gurbin tecmintapp.lan tare da sunan yankinku da /usr/share/nginx/html/testapp/web tare da hanyar da fayilolin aikace-aikacenku suke.

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

Adana fayil ɗin kuma sake kunna Nginx don aiwatar da canje-canje kwanan nan.

# systemctl restart nginx

Yi amfani da daidaitawa mai zuwa a cikin fayil na httpd.conf na Apache ko a cikin saitin mai watsa shiri na kama-da-wane.

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

Adana fayil ɗin kuma sake farawa Apache don aiwatar da canje-canje kwanan nan.

# systemctl restart httpd

Gwajin Yii Aikace-aikacen Yanar gizo Ta Mai Binciken

Kafin yin gwajin aikace-aikacen gidan yanar gizon mu na Yii ka tabbata ka sabunta yanayin tsaro na /yanar gizo/kadarori/ shugabanci don sanya shi abin rubutu ga tsarin yanar gizo, ta hanyar aiwatar da umarni mai zuwa.

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

Na gaba, sabunta dokokinka na wuta don ba da izinin buƙatun HTTP da HTTPS ta hanyar Firewall zuwa uwar garken Nginx.

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

A ƙarshe, gwada idan aikace-aikacen gidan yanar gizonku suna aiki da kyau kuma Nginx ko Apache suna aiki da su. Bude burauzar gidan yanar gizo ka nuna ta ga adireshin da ke tafe:

http://tecmintapp.lan 

Shafin yanar gizo na aikace-aikacen Yii na asali ya kamata ya nuna kamar yadda aka nuna a cikin hoton da ke biye.

Barka da warhaka! Kunyi nasarar shigar da sabon ƙarni na tsarin Yii PHP kuma kun saita shi don aiki tare da Nginx ko Apache akan CentOS 8.

Don ƙarin bayani da yadda za a fara amfani da Yii don ginin aikace-aikacen gidan yanar gizon ku, duba jagorar Yii tabbatacce.