Si të instaloni Yii PHP Framework në CentOS 8


Yii është një kornizë PHP me burim të hapur, me performancë të lartë, fleksibël, efikase dhe të sigurt për ndërtimin e shpejtë të aplikacioneve moderne të Uebit. Është një kornizë e përgjithshme dhe e plotë programimi në internet për të shkruar kodin në një mënyrë të orientuar nga objekti dhe ofron shumë veçori të provuara dhe të gatshme për përdorim. Ai vjen me një numër parazgjedhjesh të arsyeshme dhe mjete të integruara që ju ndihmojnë të shkruani kod të fortë dhe të sigurt.

Këtu janë disa nga karakteristikat kryesore të Yii:

  • Një kornizë e pastër e bazuar në OOP.
  • Një arkitekturë e bazuar në komponentë.
  • Zbaton modelin arkitekturor MVC (Model-View-Controller).
  • Mbështet ndërtuesit e pyetjeve dhe ActiveRecord për bazat e të dhënave relacionale dhe NoSQL.
  • Mbështetje për ruajtjen me shumë nivele.
  • Mbështetje e zhvillimit RESTful API.
  • Është jashtëzakonisht i shtrirë duke i lejuar përdoruesit të personalizojnë ose zëvendësojnë çdo pjesë të kodit që nga thelbi. Përveç kësaj, përdoruesit mund të përdorin ose zhvillojnë shtesa të rishpërndarshme.

Yii 2.0 është gjenerata aktuale e kornizës (në kohën e shkrimit) që kërkon PHP 5.4.0 ose më lart, por funksionon më së miri me versionin më të fundit të PHP 7. Ai mbështet disa nga teknologjitë dhe protokollet më të fundit të Uebit, duke përfshirë Composer, PSR , hapësira emrash, tipare dhe të tjera.

Duke qenë një kuadër gjenerik i zhvillimit të Uebit në lidhje me veçoritë e tij të rëndësishme, Yii mund të përdoret për të zhvilluar pothuajse çdo lloj aplikacioni Web nga portalet e përdoruesve/administratorëve, forumet, sistemet e menaxhimit të përmbajtjes (CMS), deri te projektet e tregtisë elektronike, shërbimet RESTful Web, dhe shumë më tepër në shkallë të gjerë.

  1. Një shembull ekzekutues i serverit CentOS 8.
  2. Një grumbull LEMP me PHP 5.4.0 ose më lart.
  3. Një Kompozitor – një menaxher paketash në nivel aplikacioni për PHP.

Në këtë artikull, ne do t'ju tregojmë se si të instaloni kornizën PHP Yii në një server CentOS 8 për të filluar zhvillimin e aplikacioneve PHP duke përdorur Yii.

Instalimi i Yii duke përdorur Kompozitorin

Ka disa mënyra për të instaluar Yii, por mënyra e rekomanduar për të instaluar Yii është përdorimi i menaxherit të paketave Composer, pasi ju lejon të përditësoni Yii me një komandë të vetme dhe gjithashtu ju mundëson të instaloni shtesa të reja.

Nëse nuk e keni tashmë të instaluar Composer në serverin tuaj CentOS 8, mund ta instaloni duke ekzekutuar komandat e mëposhtme.

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

Me të instaluar Composer, mund të instaloni versionin më të fundit të qëndrueshëm të shabllonit të aplikacionit Yii nën një direktori të aksesueshme në ueb Apache ose Nginx të quajtur testapp. Nëse dëshironi, mund të zgjidhni një emër tjetër drejtorie.

# 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

Pas përfundimit të instalimit, ose konfiguroni serverin tuaj të uebit (shih seksionin tjetër) ose përdorni ueb serverin e integruar PHP duke ekzekutuar komandën e mëposhtme në direktoriumin rrënjë të projektit testapp.

# cd testapp
# php yii serve

Shënim: Si parazgjedhje, serveri HTTP do të dëgjojë portin 8080. Megjithatë, nëse ai port është tashmë në përdorim, mund të përdorni portën e ndryshme duke shtuar argumentin --port siç tregohet.

# php yii serve --port=8888

Tani, hapni shfletuesin tuaj dhe shkruani URL-në e mëposhtme për të hyrë në aplikacionin e instaluar Yii.

http://localhost:8888

Konfigurimi i serverëve në internet për Yii

Në një server prodhimi, mund të dëshironi të konfiguroni uebserverin tuaj që të shërbejë aplikacionin e internetit Yii nëpërmjet URL-së http://www.example.com/index.php në vend të http:// www.example.com/basic/testapp/index.php. Në këtë rast, duhet të drejtoni rrënjën e dokumentit të serverit tuaj të internetit në direktorinë testapp/web.

Krijo një skedar konfigurimi të quajtur /etc/nginx/conf.d/testapp.conf.

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

Tjetra, kopjoni dhe ngjisni konfigurimin e mëposhtëm në të. Mos harroni të zëvendësoni tecmintapp.lan me emrin e domenit tuaj dhe /usr/share/nginx/html/testapp/web me shtegun ku ndodhen skedarët e aplikacionit tuaj.

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

Ruani skedarin dhe rinisni Nginx për të realizuar ndryshimet e fundit.

# systemctl restart nginx

Përdorni konfigurimin e mëposhtëm në skedarin httpd.conf të Apache ose brenda një konfigurimi të hostit virtual.

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

Ruani skedarin dhe rinisni Apache-n për të realizuar ndryshimet e fundit.

# systemctl restart httpd

Testimi i aplikacionit Ueb Yii përmes një shfletuesi

Përpara se të testoni aplikacionin tonë të internetit Yii, sigurohuni që të përditësoni kontekstin e sigurisë së drejtorisë /web/assets/ për ta bërë atë të shkrueshme në procesin e uebit, duke ekzekutuar komandën e mëposhtme.

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

Më pas, përditësoni rregullat e murit të zjarrit për të lejuar kërkesat HTTP dhe HTTPS përmes murit të zjarrit në serverin Nginx.

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

Më në fund, provoni nëse aplikacioni juaj në internet funksionon mirë dhe po shërbehet nga Nginx ose Apache. Hapni një shfletues uebi dhe drejtojeni atë në adresën e mëposhtme:

http://tecmintapp.lan 

Faqja e paracaktuar në internet e aplikacionit Yii duhet të shfaqet siç tregohet në pamjen e mëposhtme të ekranit.

urime! Ju keni instaluar me sukses gjeneratën e fundit të kornizës PHP Yii dhe e keni konfiguruar atë të funksionojë me Nginx ose Apache në CentOS 8.

Për më shumë informacion dhe si të filloni të përdorni Yii për ndërtimin e aplikacionit tuaj në internet, shihni udhëzuesin përfundimtar Yii.