Otu esi wụnye Yii PHP Framework na CentOS 8


Yii bụ isi mmalite mepere emepe, arụmọrụ dị elu, na-agbanwe agbanwe, dị mma yana nchekwa PHP maka iwulite ngwa Weebụ ọgbara ọhụrụ. Ọ bụ usoro mmemme weebụ zuru oke na nke zuru oke maka ide koodu n'ụdị dabere na ihe ma na-enye ọtụtụ njirimara egosipụtara na njikere iji. Ọ na-abịa na ọtụtụ ndabara ezi uche dị na ya yana ngwaọrụ arụnyere na-enyere gị aka ide koodu siri ike na echekwara.

Nke a bụ ụfọdụ njiri mara Yii:

  • Oghere dị ọcha dabere na OOP.
  • Ihe owuwu nke dabere na akụrụngwa.
  • Na-emejuputa ụkpụrụ ụlọ MVC (Model-View-Controller).
  • Na-akwado ndị na-ewu ajụjụ na ActiveRecord maka ma ọdụ data nke mmekọrịta yana NoSQL.
  • Nkwado caching ọtụtụ ọkwa.
  • Nkwado mmepe API zuru oke.
  • Ọ bụ ihe a na-apụghị ịgbagha agbagha na-enye ndị ọrụ ohere ịhazi ma ọ bụ dochie ibe koodu ọ bụla site na isi. E wezụga nke ahụ, ndị ọrụ nwere ike iji ma ọ bụ mepụta ndọtị enwere ike kesaa.

Yii 2.0 bụ ọgbọ ugbu a nke framework (n'oge ederede) nke chọrọ PHP 5.4.0 ma ọ bụ n'elu ma na-agba ọsọ kacha mma na ọhụrụ version nke PHP 7. Ọ na-akwado ụfọdụ nke ọhụrụ Web teknụzụ na protocols, gụnyere Composer, PSR. , oghere aha, àgwà, na ndị ọzọ.

N'ịbụ usoro mmepe webụ ọnụọgụgụ yana yana njirimara ya dị ịrịba ama, enwere ike iji Yii mepụta ihe fọrọ nke nta ka ọ bụrụ ụdị ngwa Weebụ ọ bụla sitere na ọnụ ụzọ onye ọrụ/admin, forums, njikwa ọdịnaya (CMS), na ọrụ e-azụmahịa, ọrụ Weebụ RESTful, na ọtụtụ ihe ndị ọzọ na nnukwu ọnụ ọgụgụ.

  1. Ihe atụ nke sava CentOS 8.
  2. Okpokoro LEMP nwere PHP 5.4.0 ma ọ bụ karịa.
  3. Onye dere – onye njikwa ngwugwu ọkwa ngwa maka PHP.

N'isiokwu a, anyị ga-egosi gị otu esi etinye usoro Yii PHP na sava CentOS 8 iji malite ịmepụta ngwa PHP site na iji Yii.

Ịwụnye Yii Iji Onye na-ede ihe

Enwere ụzọ dị iche iche isi wụnye Yii, mana ụzọ akwadoro isi wụnye Yii bụ iji njikwa ngwugwu Composer, ebe ọ na-enye gị ohere iji otu iwu melite Yii ma na-enye gị ohere ịwụnye mgbakwunye ọhụrụ.

Ọ bụrụ na i nwebeghị onye dere ihe arụnyere na sava CentOS 8 gị, ị nwere ike iwunye ya site na iji iwu ndị a.

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

Site na arụnyere onye na-ede ihe, ị nwere ike ịwụnye ụdị ngwa ngwa Yii kwụsiri ike kachasị ọhụrụ n'okpuru ndekọ Apache ma ọ bụ Weebụ Nginx a na-akpọ testapp. Ị nwere ike họrọ aha ndekọ aha dị iche ma ịchọrọ.

# 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

Mgbe echichi mechara, ma hazie sava weebụ gị (lee ngalaba na-esote) ma ọ bụ jiri sava weebụ agbakwunyere na PHP site na ịme iwu na-esonụ na testapp akwụkwọ ndekọ mgbọrọgwụ.

# cd testapp
# php yii serve

Rịba ama: Site na ndabara, HTTP-server ga-ege ntị na ọdụ ụgbọ mmiri 8080. Otú ọ dị, ọ bụrụ na ọdụ ụgbọ mmiri ahụ adịlarị, ị nwere ike iji ọdụ ụgbọ mmiri dị iche iche site na ịgbakwunye --port arụmụka dị ka egosiri.

# php yii serve --port=8888

Ugbu a, mepee ihe nchọgharị gị wee pịnye URL ndị a ka ịnweta ngwa Yii arụnyere.

http://localhost:8888

Na-ahazi sava webụ maka Yii

Na ihe nkesa na-emepụta ihe, ịnwere ike ịhazi sava weebụ gị ka ọ na-eje ozi ngwa weebụ Yii site na URL http://www.example.com/index.php kama http:// www.example.com/basic/testapp/index.php. N'ọnọdụ ahụ, ị ga-atụrịrị mgbọrọgwụ akwụkwọ sava weebụ gị na ndekọ ndekọ testapp/web.

Mepụta faịlụ nhazi a na-akpọ /etc/nginx/conf.d/testapp.conf.

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

Na-esote, detuo na mado nhazi ndị a na ya. Cheta iji aha ngalaba gị dochie tecmintapp.lan yana /usr/share/nginx/html/testapp/web n'ụzọ ebe faịlụ ngwa gị dị.

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

Chekwaa faịlụ ma malitegharịa Nginx ka ime mgbanwe ndị na-adịbeghị anya.

# systemctl restart nginx

Jiri nhazi ndị a na faịlụ Apache's httpd.conf ma ọ bụ n'ime nhazi nhazi nke ọma.

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

Chekwaa faịlụ ahụ wee malitegharịa Apache iji mee mgbanwe ndị na-adịbeghị anya.

# systemctl restart httpd

Na-anwale ngwa Weebụ Yii Site na ihe nchọgharị

Tupu ịnwale ngwa webụ Yii anyị hụ na imelite ọnọdụ nchekwa nke ndekọ /web/assets/ iji mee ka ọ bụrụ ederede na usoro webụ, site na ịme iwu na-esonụ.

# 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-esote, melite iwu firewalld gị iji kwe ka arịrịọ HTTP na HTTPS site na firewall gaa na sava Nginx.

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

N'ikpeazụ, nwalee ma ngwa weebụ gị na-arụ ọrụ nke ọma ma Nginx ma ọ bụ Apache na-enye ya. Mepee ihe nchọgharị weebụ wee tụọ aka na adreesị a:

http://tecmintapp.lan 

Ibe weebụ ngwa Yii nke ndabara kwesịrị igosipụta dị ka egosiri na nseta ihuenyo na-esonụ.

Ekele! Ị tinyela ọgbọ ọhụrụ nke usoro Yii PHP nke ọma wee hazie ya ka ọ rụọ ọrụ na Nginx ma ọ bụ Apache na CentOS 8.

Maka ozi ndị ọzọ yana otu esi ebido iji Yii maka iwulite ngwa webụ gị, hụ ntuziaka doro anya Yii.