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.
- Pokrenuta instanca poslužitelja CentOS 8.
- LEMP stog s PHP 5.4.0 ili novijim.
- 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.