Kako instalirati Yii PHP Framework na CentOS 8


Yii je open-source, visoko učinkovit, fleksibilan, učinkovit i siguran PHP okvir za brzu izgradnju modernih web aplikacija. To je generički i cjeloviti web okvir za programiranje za pisanje koda na objektno orijentirani način i pruža brojne dokazane i spremne za upotrebu značajke. Dolazi s nizom razumnih zadanih vrijednosti i ugrađenim alatima koji vam pomažu u pisanju čvrstog i sigurnog koda.

Evo nekoliko ključnih značajki Yia:

  • Čisti okvir zasnovan na OOP-u.
  • Arhitektura zasnovana na komponentama.
  • Primjenjuje arhitektonski obrazac MVC (Model-View-Controller).
  • Podržava graditelje upita i ActiveRecord za relacijske i NoSQL baze podataka.
  • Višeslojna podrška za predmemoriranje.
  • RESTful podrška za razvoj API-ja.
  • Izuzetno je proširiv što korisnicima omogućuje prilagodbu ili zamjenu bilo kojeg dijela koda izravno iz jezgre. Osim toga, korisnici mogu koristiti ili razvijati proširenja koja se mogu distribuirati.

Yii 2.0 je trenutna generacija okvira (u vrijeme pisanja ovog teksta) koja zahtijeva PHP 5.4.0 ili noviju, ali najbolje funkcionira s najnovijom verzijom PHP 7. Podržava neke od najnovijih web tehnologija i protokola, uključujući Composer, PSR , imenski prostori, osobine i drugi.

Budući da je generički okvir za web razvoj zajedno sa svojim značajnim značajkama, Yii se može koristiti za razvoj gotovo svih vrsta web aplikacija od korisničkih/administrativnih portala, foruma, sustava za upravljanje sadržajem (CMS), do projekata e-trgovine, RESTful web usluga, i mnogo više na veliko.

  1. Pokrenuta instanca poslužitelja CentOS 8.
  2. LEMP stog s PHP 5.4.0 ili novijim.
  3. Skladatelj - upravitelj paketa na razini aplikacije za PHP.

U ovom ćemo vam članku pokazati kako instalirati Yii PHP framework na CentOS 8 poslužitelj da biste započeli razvoj PHP aplikacija pomoću Yii.

Instaliranje Yii koristeći Composer

Postoji nekoliko načina za instalaciju Yii, ali preporučeni način za instalaciju Yii je korištenje upravitelja paketa Composer, jer vam omogućuje ažuriranje Yii jednom naredbom, a omogućuje i instaliranje novih proširenja.

Ako Composer već nije instaliran na vašem CentOS 8 poslužitelju, možete ga instalirati izvođenjem sljedećih naredbi.

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

Ako je Composer instaliran, možete instalirati najnoviju stabilnu verziju predloška aplikacije Yii u Apacheov ili Nginxov web direktorij nazvan testapp . Ako želite, možete odabrati drugo ime direktorija.

# 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

Nakon završetka instalacije konfigurirajte web poslužitelj (pogledajte sljedeći odjeljak) ili upotrijebite integrirani PHP web poslužitelj izvršavanjem sljedeće naredbe u korijenskom direktoriju projekta testapp .

# cd testapp
# php yii serve

Napomena: Prema zadanim postavkama, HTTP poslužitelj će preslušati port 8080. Međutim, ako se taj port već koristi, možete koristiti drugi port dodavanjem argumenta --port kao što je prikazano.

# php yii serve --port=8888

Sada otvorite svoj preglednik i upišite sljedeći URL za pristup instaliranoj aplikaciji Yii.

http://localhost:8888

Konfiguriranje web poslužitelja za Yii

Na proizvodnom poslužitelju možda ćete htjeti konfigurirati svoj web poslužitelj da poslužuje Yii web aplikaciju putem URL-a http://www.example.com/index.php umjesto http:// www.example.com/basic/testapp/index.php . U tom slučaju morate usmjeriti korijen dokumenta web poslužitelja na direktorij testapp/web .

Stvorite konfiguracijsku datoteku nazvanu /etc/nginx/conf.d/testapp.conf.

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

Zatim u nju kopirajte i zalijepite sljedeću konfiguraciju. Ne zaboravite zamijeniti tecmintapp.lan imenom domene, a /usr/share/nginx/html/testapp/web putem na kojem se nalaze datoteke vaše aplikacije.

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

Spremite datoteku i ponovno pokrenite Nginx da biste izvršili nedavne promjene.

# systemctl restart nginx

Upotrijebite sljedeću konfiguraciju u datoteci httpd.conf tvrtke Apache ili unutar konfiguracije virtualnog hosta.

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

Spremite datoteku i ponovno pokrenite Apache da biste izvršili nedavne promjene.

# systemctl restart httpd

Testiranje Yii web aplikacije putem preglednika

Prije testiranja naše web aplikacije Yii, pobrinite se da ažurirate sigurnosni kontekst direktorija /web/assets/ kako biste ga učinili zapisljivim za web proces, pokretanjem sljedeće naredbe.

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

Dalje, ažurirajte svoja pravila vatrozida kako biste dopuštali HTTP i HTTPS zahtjeve kroz vatrozid na Nginx poslužitelj.

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

Na kraju, testirajte radi li vaša web aplikacija u redu i poslužuje li je Nginx ili Apache. Otvorite web preglednik i usmjerite ga na sljedeću adresu:

http://tecmintapp.lan 

Zadana web stranica aplikacije Yii trebala bi se prikazati kao što je prikazano na sljedećem snimku zaslona.

Čestitamo! Uspješno ste instalirali najnoviju generaciju Yii PHP okvira i konfigurirali ga za rad s Nginxom ili Apacheom na CentOS 8.

Za više informacija i kako početi koristiti Yii za izradu web aplikacije, pogledajte konačni vodič za Yii.