Hvernig á að setja upp Yii PHP Framework á CentOS 8


Yii er opinn uppspretta, afkastamikil, sveigjanleg, skilvirk og örugg PHP ramma til að byggja upp nútíma vefforrit hratt. Það er almennur og fullur stafla vefforritunarrammi til að skrifa kóða á hlutbundinn hátt og býður upp á marga sannaða og tilbúna eiginleika. Það kemur með fjölda sanngjarnra sjálfgefna og innbyggðra verkfæra sem hjálpa þér að skrifa traustan og öruggan kóða.

Hér eru nokkrir af helstu eiginleikum Yii:

  • Hreint OOP-undirstaða ramma.
  • Hlutabyggður arkitektúr.
  • Innleiðir MVC (Model-View-Controller) byggingarmynstrið.
  • Styður fyrirspurnasmíðar og ActiveRecord fyrir bæði vensla- og NoSQL gagnagrunna.
  • Stuðningur við margþætta skyndiminni.
  • RESTful API þróunarstuðningur.
  • Það er afar stækkanlegt og gerir notendum kleift að sérsníða eða skipta út hvaða kóða sem er beint frá kjarnanum. Að auki geta notendur notað eða þróað endurdreifanlegar viðbætur.

Yii 2.0 er núverandi kynslóð rammans (þegar þetta er skrifað) sem krefst PHP 5.4.0 eða nýrri en keyrir best með nýjustu útgáfu PHP 7. Það styður suma af nýjustu veftækni og samskiptareglum, þar á meðal Composer, PSR , nafnarými, eiginleikar og fleira.

Þar sem Yii er almennur vefþróunarrammi í tengslum við mikilvæga eiginleika þess, er hægt að nota Yii til að þróa næstum hvers kyns vefforrit, allt frá notenda-/stjórnendagáttum, spjallborðum, vefumsjónarkerfum (CMS), til rafrænna viðskiptaverkefna, RESTful vefþjónustu, og margt fleira í stórum stíl.

  1. Kynjandi dæmi af CentOS 8 þjóninum.
  2. LEMP stafla með PHP 5.4.0 eða nýrri.
  3. Tónskáld – pakkastjóri á forritastigi fyrir PHP.

Í þessari grein munum við sýna þér hvernig á að setja upp Yii PHP ramma á CentOS 8 netþjóni til að byrja að þróa PHP forrit með Yii.

Uppsetning Yii með því að nota Composer

Það eru nokkrar leiðir til að setja upp Yii, en ráðlögð leið til að setja upp Yii er að nota Composer pakkastjóra, þar sem það gerir þér kleift að uppfæra Yii með einni skipun og gerir þér einnig kleift að setja upp nýjar viðbætur.

Ef þú ert ekki þegar með Composer uppsett á CentOS 8 þjóninum þínum geturðu sett það upp með því að keyra eftirfarandi skipanir.

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

Með Composer uppsett, geturðu sett upp nýjustu stöðugu útgáfuna af Yii forritasniðmáti undir Apache eða Nginx vefaðgengilegri möppu sem heitir testapp. Þú getur valið annað nafn möppu ef þú vilt.

# 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

Eftir að uppsetningu er lokið skaltu annaðhvort stilla vefþjóninn þinn (sjá næsta kafla) eða nota samþætta PHP vefþjóninn með því að framkvæma eftirfarandi skipun í testapp rótarskrá verkefnisins.

# cd testapp
# php yii serve

Athugið: Sjálfgefið er að HTTP-þjónninn hlustar á gátt 8080. Hins vegar, ef sú höfn er þegar í notkun, geturðu notað aðra höfn með því að bæta --port við rökstuðningnum eins og sýnt er.

# php yii serve --port=8888

Nú skaltu opna vafrann þinn og slá inn eftirfarandi vefslóð til að fá aðgang að uppsettu Yii forritinu.

http://localhost:8888

Stilla vefþjóna fyrir Yii

Á framleiðsluþjóni gætirðu viljað stilla vefþjóninn þinn til að þjóna Yii vefforritinu með slóðinni http://www.example.com/index.php í stað http:// www.example.com/basic/testapp/index.php. Í því tilviki verður þú að vísa rót vefþjónsskjalsins á testapp/web skrána.

Búðu til stillingarskrá sem heitir /etc/nginx/conf.d/testapp.conf.

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

Næst skaltu afrita og líma eftirfarandi uppsetningu í það. Mundu að skipta út tecmintapp.lan fyrir lénið þitt og /usr/share/nginx/html/testapp/web fyrir slóðina þar sem forritaskrárnar þínar eru staðsettar.

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

Vistaðu skrána og endurræstu Nginx til að framkvæma nýlegar breytingar.

# systemctl restart nginx

Notaðu eftirfarandi stillingar í httpd.conf skrá Apache eða innan sýndarhýsilstillingar.

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

Vistaðu skrána og endurræstu Apache til að framkvæma nýlegar breytingar.

# systemctl restart httpd

Að prófa Yii vefforrit í vafra

Áður en Yii vefforritið okkar er prófað, vertu viss um að uppfæra öryggissamhengi /web/assets/ möppunnar til að gera það skrifanlegt í vefferlið með því að keyra eftirfarandi skipun.

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

Næst skaltu uppfæra eldveggsreglurnar þínar til að leyfa HTTP og HTTPS beiðnir í gegnum eldvegginn til Nginx netþjónsins.

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

Að lokum, prófaðu hvort vefforritið þitt virkar vel og er þjónað af Nginx eða Apache. Opnaðu vafra og beindu honum á eftirfarandi heimilisfang:

http://tecmintapp.lan 

Sjálfgefin vefsíða Yii forritsins ætti að birtast eins og sýnt er á eftirfarandi skjámynd.

Til hamingju! Þú hefur sett upp nýjustu kynslóð Yii PHP ramma og stillt hana til að vinna með Nginx eða Apache á CentOS 8.

Fyrir frekari upplýsingar og hvernig á að byrja að nota Yii til að byggja upp vefforritið þitt, sjá Yii endanlega handbók.