Giunsa ang Pag-install sa Yii PHP Framework sa CentOS 8


Ang Yii usa ka open-source, high-performance, flexible, episyente ug luwas nga PHP framework para sa paspas nga pagtukod og modernong mga aplikasyon sa Web. Kini usa ka generic ug full-stack nga web programming framework alang sa pagsulat sa code sa usa ka object-oriented nga paagi ug naghatag og daghang napamatud-an ug andam-gamiton nga mga bahin. Nag-abut kini sa daghang mga makatarunganon nga default ug mga built-in nga himan nga makatabang kanimo sa pagsulat sa lig-on ug luwas nga code.

Ania ang pipila sa mga mahinungdanong bahin ni Yii:

  • Usa ka lunsay nga OOP-based nga balangkas.
  • Usa ka component-based nga arkitektura.
  • Nag-implementar sa MVC (Model-View-Controller) architectural pattern.
  • Nagsuporta sa mga tigtukod og pangutana ug ActiveRecord para sa mga relational ug NoSQL nga mga database.
  • Multi-tier nga suporta sa caching.
  • Makapahulay nga suporta sa pagpalambo sa API.
  • Kini hilabihan ka mapalapad nga nagtugot sa mga tiggamit sa pagpahiangay o pag-ilis sa bisan unsang piraso sa code gikan mismo sa kinauyokan. Gawas pa, ang mga tiggamit mahimo’g mogamit o makahimo pag-usab nga mga extension.

Ang Yii 2.0 mao ang kasamtangan nga henerasyon sa framework (sa panahon sa pagsulat) nga nagkinahanglan og PHP 5.4.0 o labaw pa apan labing maayo nga nagdagan sa pinakabag-o nga bersyon sa PHP 7. Gisuportahan niini ang pipila sa pinakabag-o nga mga teknolohiya sa Web ug mga protocol, lakip ang Composer, PSR , namespaces, mga kinaiya, ug uban pa.

Isip usa ka generic nga Web development framework inubanan sa mga mahinungdanong bahin niini, ang Yii mahimong magamit sa pagpalambo sa halos bisan unsang matang sa Web applications gikan sa user/admin portals, forums, content management systems (CMS), ngadto sa e-commerce projects, RESTful Web services, ug daghan pa sa dako nga sukod.

  1. Usa ka nagdagan nga instance sa CentOS 8 server.
  2. Usa ka LEMP stack nga adunay PHP 5.4.0 o labaw pa.
  3. Usa ka Composer – usa ka application-level package manager para sa PHP.

Sa kini nga artikulo, ipakita namon kanimo kung giunsa ang pag-install sa Yii PHP framework sa usa ka CentOS 8 server aron masugdan ang pagpalambo sa mga aplikasyon sa PHP gamit ang Yii.

Pag-instalar sa Yii Gamit ang Composer

Adunay ubay-ubay nga mga paagi sa pag-instalar sa Yii, apan ang girekomendar nga paagi sa pag-instalar sa Yii mao ang paggamit sa Composer package manager, tungod kay kini nagtugot kanimo sa pag-update sa Yii sa usa ka command ug makapahimo usab kanimo sa pag-instalar sa bag-ong mga extension.

Kung wala pa nimo na-install ang Composer sa imong CentOS 8 server, mahimo nimo kini i-install pinaagi sa pagpadagan sa mga mosunod nga mga mando.

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

Sa pag-install sa Composer, mahimo nimong i-install ang pinakabag-o nga stable nga bersyon sa Yii application template ubos sa Apache o Nginx Web-accessible directory nga gitawag og testapp. Makapili ka ug lain nga ngalan sa direktoryo kung gusto nimo.

# 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

Human makompleto ang instalasyon, i-configure ang imong web server (tan-awa ang sunod nga seksyon) o gamita ang integrated PHP web server pinaagi sa pag-execute sa mosunod nga command sa testapp project root directory.

# cd testapp
# php yii serve

Nota: Sa default, ang HTTP-server maminaw sa port 8080. Apan, kung kana nga port gigamit na, mahimo nimong gamiton ang lain-laing port pinaagi sa pagdugang --port sa argumento sama sa gipakita.

# php yii serve --port=8888

Karon, ablihi ang imong browser ug i-type ang mosunod nga URL aron ma-access ang na-install nga Yii nga aplikasyon.

http://localhost:8888

Pag-configure sa mga Web Server para sa Yii

Sa usa ka server sa produksiyon, mahimo nimong i-configure ang imong webserver aron magsilbi sa Yii web application pinaagi sa URL http://www.example.com/index.php imbes sa http:// www.example.com/basic/testapp/index.php. Niana nga kaso, kinahanglan nimong itudlo ang imong web server nga dokumento nga gamut ngadto sa testapp/web nga direktoryo.

Paghimo og configuration file nga gitawag og /etc/nginx/conf.d/testapp.conf.

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

Sunod, kopyaha ug idikit ang mosunod nga configuration niini. Hinumdumi nga pulihan ang tecmintapp.lan sa imong domain name ug /usr/share/nginx/html/testapp/web sa dalan diin nahimutang ang imong mga file sa app.

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

I-save ang file ug i-restart ang Nginx aron ma-epekto ang bag-ong mga pagbag-o.

# systemctl restart nginx

Gamita ang mosunod nga configuration sa Apache's httpd.conf file o sulod sa virtual host configuration.

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

I-save ang file ug i-restart ang Apache aron ma-epekto ang bag-ong mga pagbag-o.

# systemctl restart httpd

Pagsulay sa Yii Web Application Pinaagi sa usa ka Browser

Sa dili pa sulayan ang among Yii web application siguroha nga i-update ang konteksto sa seguridad sa /web/assets/ nga direktoryo aron mahimo kining masulat sa proseso sa web, pinaagi sa pagpadagan sa mosunod nga sugo.

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

Sunod, i-update ang imong firewalld nga mga lagda aron tugutan ang HTTP ug HTTPS nga mga hangyo pinaagi sa firewall ngadto sa Nginx server.

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

Sa katapusan, sulayi kung maayo ang imong aplikasyon sa web ug giserbisyuhan sa Nginx o Apache. Ablihi ang usa ka web browser ug itudlo kini sa mosunod nga adres:

http://tecmintapp.lan 

Ang default nga Yii application web page kinahanglang ipakita sama sa gipakita sa mosunod nga screenshot.

Mga pahalipay! Malampuson nimo nga na-install ang pinakabag-o nga henerasyon sa Yii PHP framework ug gi-configure kini aron magamit sa Nginx o Apache sa CentOS 8.

Para sa dugang nga impormasyon ug unsaon pagsugod sa paggamit sa Yii para sa paghimo sa imong web application, tan-awa ang Yii definitive guide.