Kako instalirati Yii PHP Framework na Ubuntu


Yii (izgovara se Yee ili [ji:]) je besplatan i otvoren izvor, brz, visokih performansi, siguran, fleksibilan, ali pragmatičan, i efikasan generički okvir za web programiranje za razvoj svih vrsta web aplikacija koristeći PHP.

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

Podrška platformi

Yii sadrži 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 servera.
  • LEMP stack sa PHP 5.4.0 ili novijim.
  • Kompozitor – menadžer paketa na nivou aplikacije za PHP.

Na ovoj stranici

  • Instaliranje Yii Frameworka preko Composer-a u Ubuntu
  • Pokretanje Yii-a pomoću PHP razvojnog servera
  • Pokretanje Yii projekta u proizvodnji koristeći NGINX HTTP server
  • Omogućite HTTPS na Yii aplikacijama pomoću Let’s Encrypt

Postoje dva načina da instalirate Yii, koristeći Composer menadžer paketa ili ga instalirate iz arhivske datoteke. Prvi je preporučeni način, jer vam omogućava da instalirate nove ekstenzije ili ažurirate Yii pomoću jedne naredbe.

Instaliranje Yii Frameworka preko 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, pomaknite se u direktorij /var/www/html/ koji će pohraniti datoteke vaših web aplikacija ili web stranica, a zatim instalirajte Yii paket koristeći composer (zamijenite testproject imenom direktorija vaše web aplikacije).

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

Pokretanje Yii-a pomoću PHP razvojnog servera

U ovom trenutku, spremni ste da počnete koristiti Yii okvir za razvoj. Da biste pokrenuli PHP razvojni server, idite u direktorij testprojects (ime vašeg direktorija bi trebalo da se razlikuje u zavisnosti od onoga što ste naveli u prethodnoj naredbi), a zatim pokrenite razvojni server. Prema zadanim postavkama, trebao bi raditi na portu 8080.

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

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

php yii serve --port=5000

Zatim otvorite svoj web pretraživač i navigirajte koristeći sljedeću adresu:

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

Pokretanje Yii projekta u proizvodnji koristeći NGINX HTTP server

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

Da biste pristupili Yii aplikaciji bez upisivanja porta, potrebno je kreirati potreban DNS A zapis da usmjerava vašu domenu na vaš Yii framework aplikacija server .

Za ovaj vodič, pokazat ćemo kako implementirati Yii aplikaciju sa NGINX. Dakle, trebate kreirati konfiguracijsku datoteku virtuelnog hosta ili serverskog bloka u /etc/nginx/sites-available/ direktoriju 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 nju (zamijenite testprojects.me i www.testprojects.me sa svojim imenom domene). Također navedite način na koji će NGINX proslijediti FastCGI zahtjeve na PHP-FPM, u ovom primjeru koristimo UNIX socket (/ run/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;
    }
}

Sačuvajte 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 ponovo pokrenite NGINX uslugu da primijenite nove promjene:

sudo systemctl restart nginx

Vratite se na svoj web pretraživač i navigirajte sa imenom svoje domene.

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

Omogućite HTTPS na Yii aplikacijama pomoću Let’s Encrypt

Na kraju, morate omogućiti HTTPS na svojoj web stranici. Možete koristiti ili 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, morate instalirati snapd da biste ga instalirali.

sudo snap install --classic certbot

Zatim koristite certbot da biste dobili i instalirali/konfigurirali svoj besplatni SSL/TLS certifikat za korištenje s NGINX web serverom (navedite važeću e-poštu za obnovu i slijedite upute da dovršite instalaciju):

sudo certbot --nginx

Sada još jednom idite na svoj web preglednik da potvrdite 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 sa bazom podataka, pogledajte dokumentaciju Yii okvira sa službene web stranice Yii projekta. Isprobajte i podijelite svoje mišljenje o Yii ili postavite bilo kakva pitanja putem obrasca za povratne informacije ispod.