Kako instalirati Yii PHP Framework na Ubuntu


Yii (izgovara se Yee ili [ji:]) je besplatan i otvorenog koda, brz, visokoučinkovit, siguran, fleksibilan, ali pragmatičan, i učinkovit okvir za generičko web programiranje za razvoj svih vrsta web aplikacija pomoću PHP-a.

U ovom ćete članku naučiti kako instalirati najnoviju verziju Yii okvira u Ubuntu LTS (dugoročna podrška) izdanjima da biste započeli razvoj modernih PHP web aplikacija.

Podrška za platformu

Yii ima sljedeća izdanja Ubuntu LTS (dugoročna podrška):

  • Ubuntu 20.04 LTS ("Focal")
  • Ubuntu 18.04 LTS (“Bionic”)
  • Ubuntu 16.04 LTS (“Xenial”)

Zahtjevi

  • Pokrenuta instanca Ubuntu poslužitelja.
  • LEMP stog s PHP 5.4.0 ili novijim.
  • Skladatelj – upravitelj paketa na razini aplikacije za PHP.

Na ovoj stranici

  • Instaliranje Yii Frameworka putem Composer-a u Ubuntu
  • Pokretanje Yii-ja pomoću PHP razvojnog poslužitelja
  • Pokretanje Yii projekta u produkciji pomoću NGINX HTTP poslužitelja
  • Omogućite HTTPS na Yii aplikacijama koristeći Let’s Encrypt

Postoje dva načina da instalirate Yii, pomoću upravitelja paketa Composer ili instaliranjem iz arhivske datoteke. Prvi je preporučeni način jer vam omogućuje instaliranje novih proširenja ili ažuriranje Yii jednom naredbom.

Instaliranje Yii Frameworka putem Composer-a u Ubuntu

Ako nemate instaliran Composer, možete ga instalirati pomoću sljedećih naredbi, koje će kasnije instalirati Yii i upravljati njegovim ovisnostima.

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

Nakon što instalirate Composer, prijeđite u direktorij /var/www/html/ koji će pohraniti vaše web aplikacije ili datoteke web stranica, zatim instalirajte Yii paket pomoću kompozitor (zamijenite testproject nazivom direktorija vaše web aplikacije).

cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic testproject

Pokretanje Yii-ja pomoću PHP razvojnog poslužitelja

U ovoj ste točki spremni početi koristiti okvir Yii za razvoj. Za pokretanje PHP razvojnog poslužitelja, prijeđite u direktorij testprojects (naziv vašeg direktorija trebao bi biti drugačiji ovisno o tome što ste naveli u prethodnoj naredbi), zatim pokrenite razvojni poslužitelj. Prema zadanim postavkama trebao bi raditi na portu 8080.

cd /var/www/html/testproject/
php yii serve

Za pokretanje razvojnog poslužitelja na drugom portu, na primjer, portu 5000, koristite oznaku --port kao što je prikazano.

php yii serve --port=5000

Zatim otvorite svoj web preglednik i krećite se pomoću sljedeće adrese:

http://SERVER_IP:8080
OR
http://SERVER_IP:5000

Pokretanje Yii projekta u produkciji pomoću NGINX HTTP poslužitelja

Za implementaciju i pristup aplikaciji Yii u produkciji, potreban je HTTP poslužitelj kao što je NGINX, Apache/HTTPD ili bilo koji drugi podržani softver web poslužitelja.

Za pristup Yii aplikaciji bez upisivanja vašeg porta, morate stvoriti potreban DNS A zapis kako biste usmjerili svoju domenu na vaš aplikacijski poslužitelj Yii okvira .

U ovom ćemo vodiču pokazati kako implementirati Yii aplikaciju s NGINX. Dakle, trebate stvoriti konfiguracijsku datoteku bloka virtualnog hosta ili poslužitelja u direktoriju /etc/nginx/sites-available/ za svoju aplikaciju kako bi je NGINX mogao poslužiti.

sudo vim /etc/nginx/sites-available/testproject.me.conf

Kopirajte i zalijepite sljedeću konfiguraciju u njega (zamijenite testprojects.me i www.testprojects.me nazivom vaše domene). Također odredite način na koji će NGINX proslijediti FastCGI zahtjeve PHP-FPM, u ovom primjeru koristimo UNIX utičnicu (/ pokreni/php/php7.4-fpm.sock):

server {
    set $host_path "/var/www/html/testproject";
    #access_log  /www/testproject/log/access.log  main;

    server_name  testprojects.me www.testprojects.me;
    root   $host_path/web;
    set $yii_bootstrap "index.php";

    charset utf-8;

    location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }

    #avoid processing of calls to unexisting static files by yii
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }

    # pass the PHP scripts to FastCGI server listening on UNIX socket 
    location ~ \.php {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;

        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }
       fastcgi_pass   unix:/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

       #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}

Spremite datoteku i zatvorite je.

Zatim provjerite ispravnost konfiguracijske sintakse NGINX, ako je u redu, omogućite novu aplikaciju kao što je prikazano:

sudo nginx -t
sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf

Zatim ponovno pokrenite uslugu NGINX kako biste primijenili nove promjene:

sudo systemctl restart nginx

Vratite se na svoj web-preglednik i krećite se pomoću naziva svoje domene.

http://testprojects.me
OR
http://www.testprojects.me

Omogućite HTTPS na Yii aplikacijama koristeći Let’s Encrypt

Na kraju, trebate omogućiti HTTPS na svojoj web stranici. Možete koristiti besplatni Let’s Encrypt SSL/TLS certifikat (koji je automatiziran i prepoznat od strane svih modernih web preglednika) ili nabaviti certifikat od komercijalnog CA.

Ako odlučite koristiti Let’s Encrypt certifikat, on se može automatski instalirati i konfigurirati pomoću alata certbot. Da biste instalirali certbot, trebate instalirati snapd da biste ga instalirali.

sudo snap install --classic certbot

Zatim upotrijebite certbot za dobivanje i instaliranje/konfiguriranje vašeg besplatnog SSL/TLS certifikata za korištenje s NGINX web poslužiteljem (navedite valjanu e-poštu za obnovu i slijedite upute za dovršetak instalacije):

sudo certbot --nginx

Sada još jednom idite na svoj web preglednik kako biste potvrdili da vaša Yii aplikacija sada radi na HTTPS (zapamtite da bi HTTP trebao automatski preusmjeriti na HTTPS).

http://testprojects.me
OR
http://www.testprojects.me

Za više informacija kao što je povezivanje vaše aplikacije s bazom podataka, pogledajte dokumentaciju Yii okvira sa službene web stranice projekta Yii. Isprobajte ga i podijelite svoje mišljenje o Yii ili postavite bilo kakva pitanja putem donjeg obrasca za povratne informacije.