Kuidas installida Yii PHP raamistik CentOS 8-le


Yii on avatud lähtekoodiga, suure jõudlusega, paindlik, tõhus ja turvaline PHP-raamistik kaasaegsete veebirakenduste kiireks ülesehitamiseks. See on üldine ja täispikk veebiprogrammeerimise raamistik koodi kirjutamiseks objektorienteeritud viisil ning pakub palju tõestatud ja kasutusvalmis funktsioone. Sellega kaasnevad mitmed mõistlikud vaikeseaded ja sisseehitatud tööriistad, mis aitavad teil kindlat ja turvalist koodi kirjutada.

Siin on mõned Yii põhijooned:

  • Puht OOP-põhine raamistik.
  • Komponendipõhine arhitektuur.
  • Rakendab MVC (Model-View-Controller) arhitektuurimustrit.
  • Toetab päringute koostajaid ja ActiveRecordi nii suhteliste kui ka NoSQL-i andmebaaside jaoks.
  • Mitmetasandiline vahemälu tugi.
  • RESTful API arendustugi.
  • See on äärmiselt laiendatav, võimaldades kasutajatel kohandada või asendada mis tahes koodijuppi kohe põhiosast. Lisaks saavad kasutajad kasutada või arendada ümberjagatavaid laiendeid.

Yii 2.0 on raamistiku praegune põlvkond (kirjutamise ajal), mis nõuab PHP 5.4.0 või uuemat versiooni, kuid töötab kõige paremini koos PHP 7 uusima versiooniga. See toetab mõningaid uusimaid veebitehnoloogiaid ja -protokolle, sealhulgas Composer, PSR , nimeruumid, tunnused ja muud.

Kuna tegemist on üldise veebiarenduse raamistikuga koos selle oluliste funktsioonidega, saab Yii kasutada peaaegu igasuguste veebirakenduste väljatöötamiseks alates kasutajate/administraatorite portaalidest, foorumitest, sisuhaldussüsteemidest (CMS), e-kaubanduse projektideni, RESTful veebiteenusteni, ja palju muud suures plaanis.

  1. CentOS 8 serveri töötav eksemplar.
  2. LEMP-i virn PHP 5.4.0 või uuemaga.
  3. helilooja - PHP rakendustaseme paketihaldur.

Selles artiklis me näitame teile, kuidas installida Yii PHP raamistik CentOS 8 serverisse, et alustada PHP-rakenduste arendamist Yii abil.

Yii installimine helilooja abil

Yii installimiseks on mitu võimalust, kuid soovitatav viis Yii installimiseks on Composeri paketihalduri kasutamine, kuna see võimaldab teil Yii värskendada ühe käsuga ja võimaldab installida ka uusi laiendusi.

Kui teie CentOS 8 serverisse pole veel Composerit installitud, saate selle installida, käivitades järgmised käsud.

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

Kui Composer on installitud, saate installida Yii rakenduse malli uusima stabiilse versiooni Apache'i või Nginxi veebile ligipääsetavasse kataloogi nimega testapp . Soovi korral saate valida muu kataloogi nime.

# 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

Kui installimine on lõpule jõudnud, konfigureerige kas veebiserver (vt järgmist jaotist) või kasutage integreeritud PHP veebiserverit, käivitades järgmise käsu projekti juurkataloogis testapp .

# cd testapp
# php yii serve

Märkus. Vaikimisi kuulab HTTP-server porti 8080. Kui see port on aga juba kasutusel, võite kasutada erinevat porti, lisades argumendi --port , nagu näidatud.

# php yii serve --port=8888

Nüüd avage oma brauser ja tippige installitud Yii rakendusele juurdepääsemiseks järgmine URL.

http://localhost:8888

Veebiserverite seadistamine Yii jaoks

Tootmisserveris võiksite konfigureerida oma veebiserveri Yii veebirakendust esitama URL-i http://www.example.com/index.php kaudu, mitte http:// www.example.com/basic/testapp/index.php . Sellisel juhul peate suunama veebiserveri dokumendi juure kataloogi testapp/web .

Looge konfiguratsioonifail nimega /etc/nginx/conf.d/testapp.conf.

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

Järgmisena kopeerige ja kleepige sinna järgmine konfiguratsioon. Ärge unustage asendada tecmintapp.lan oma domeeninimega ja /usr/share/nginx/html/testapp/web teega, kus teie rakenduse failid asuvad.

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

Viimaste muudatuste rakendamiseks salvestage fail ja taaskäivitage Nginx.

# systemctl restart nginx

Kasutage järgmist konfiguratsiooni Apache'i failis httpd.conf või virtuaalse hosti konfiguratsioonis.

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

Viimaste muudatuste rakendamiseks salvestage fail ja taaskäivitage Apache.

# systemctl restart httpd

Yii veebirakenduse testimine brauseri kaudu

Enne meie Yii veebirakenduse testimist värskendage kataloogi /web/asset/ turvakonteksti, et see oleks veebiprotsessile kirjutatav, käivitades järgmise käsu.

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

Järgmisena värskendage oma tulemüüri reegleid, et lubada HTTP ja HTTPS taotlused tulemüüri kaudu Nginxi serverisse.

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

Lõpuks testige, kas teie veebirakendus töötab hästi ja kas seda teenindab Nginx või Apache. Avage veebibrauser ja suunake see järgmisele aadressile:

http://tecmintapp.lan 

Rakenduse Yii vaikeleht peaks olema kuvatud nii, nagu on näidatud järgmisel ekraanipildil.

Palju õnne! Olete edukalt installinud Yii PHP raamistiku uusima põlvkonna ja konfigureerinud selle CentOS 8-s töötama Nginxi või Apache'iga.

Lisateavet selle kohta, kuidas Yii-d oma veebirakenduse loomiseks kasutada, leiate Yii lõplikust juhendist.