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.