Wéi installéiere ech Yii PHP Framework op CentOS 8
Yii ass en Open-Source, héich performant, flexibel, effizient a sécher PHP Kader fir séier modern Webapplikatiounen ze bauen. Et ass e generesche a Full-Stack Web Programméierungs Kader fir Code op objektorientéierter Manéier ze schreiwen a bitt vill bewährte a prett-ze-benotzen Features. Et kënnt mat enger Zuel vu raisonnabelen Defaults an agebaute Tools déi Iech hëllefen zolidd a sécher Code ze schreiwen.
Hei sinn e puer vun de Schlësselfeatures vum Yii:
- E puren OOP-baséiert Kader.
- Eng Komponent-baséiert Architektur.
- Implementéiert de MVC (Model-View-Controller) architektonescht Muster.
- Ënnerstëtzt Query Builder an ActiveRecord fir béid relational an NoSQL Datenbanken.
- Multi-Tier Caching Ënnerstëtzung.
- RESTful API Entwécklung Ënnerstëtzung.
- Et ass extrem erweiterbar, wat de Benotzer erlaabt all Stéck Code direkt aus dem Kär ze personaliséieren oder ze ersetzen. Ausserdeem kënnen d'Benotzer weiderverdeelbar Extensiounen benotzen oder entwéckelen.
Yii 2.0 ass déi aktuell Generatioun vum Kader (am Schreiwen) deen PHP 5.4.0 oder méi erfuerdert, awer am beschten mat der leschter Versioun vu PHP 7 leeft. , Nummraim, Charakteren an anerer.
Als generesche Webentwécklungskader a Verbindung mat senge bedeitende Featuren, kann Yii benotzt ginn fir bal all Zorte vu Webapplikatiounen vu Benotzer/Admin Portalen, Foren, Content Management Systemer (CMS), zu E-Commerce Projeten, RESTful Web Servicer z'entwéckelen, a vill méi op grouss Skala.
- Eng Lafen Instanz vum CentOS 8 Server.
- E LEMP-Stack mat PHP 5.4.0 oder méi héich.
- E Composer - en Applikatiounsniveau Package Manager fir de PHP.
An dësem Artikel wäerte mir Iech weisen wéi Dir de Yii PHP Kader op engem CentOS 8 Server installéiere kënnt fir PHP Uwendungen mat Yii z'entwéckelen.
Installéiere Yii Mat Composer
Et gi verschidde Weeër fir Yii z'installéieren, awer de recommandéierte Wee fir Yii z'installéieren ass de Composer Package Manager ze benotzen, well et Iech erlaabt Yii mat engem eenzege Kommando ze aktualiséieren an Iech och erlaabt nei Extensiounen z'installéieren.
Wann Dir Composer net schonn op Ärem CentOS 8 Server installéiert hutt, kënnt Dir et installéieren andeems Dir déi folgend Kommandoen ausféiert.
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer # chmod +x /usr/local/bin/composer
Mat Composer installéiert, kënnt Dir déi lescht stabil Versioun vum Yii Applikatioun Template ënner engem Apache oder Nginx Web-zougängleche Verzeechnes mam Numm testapp
installéieren. Dir kënnt en anere Verzeechnesnumm auswielen wann Dir wëllt.
# 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
Nodeems d'Installatioun fäerdeg ass, konfiguréiert entweder Äre Webserver (kuckt nächst Rubrik) oder benotzt den integréierten PHP Webserver andeems Dir de folgende Kommando am testapp
Projet Root Verzeechnes ausféiert.
# cd testapp # php yii serve
Bemierkung: Par défaut lauschtert den HTTP-Server op den Hafen 8080. Wann dee Port awer schonn am Gebrauch ass, kënnt Dir deen anere Port benotzen andeems Dir --port
d'Argument addéiert wéi gewisen.
# php yii serve --port=8888
Elo, öffnen Äre Browser a gitt déi folgend URL fir Zougang zu der installéierter Yii Applikatioun.
http://localhost:8888
Web Server fir Yii konfiguréieren
Op engem Produktiounsserver wëllt Dir vläicht Äre Webserver konfiguréieren fir d'Yii Webapplikatioun iwwer d'URL http://www.example.com/index.php
ze déngen amplaz http:// www.example.com/basic/testapp/index.php
. An deem Fall musst Dir Äre Webserverdokumentroot op de testapp/web
Verzeechnes weisen.
Erstellt eng Konfiguratiounsdatei mam Numm /etc/nginx/conf.d/testapp.conf.
# vi /etc/nginx/conf.d/testapp.conf
Als nächst, kopéiert a paste déi folgend Konfiguratioun dran. Denkt drun tecmintapp.lan
duerch Ären Domain Numm an /usr/share/nginx/html/testapp/web
duerch de Wee ze ersetzen wou Är App Dateie sinn.
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; } }
Späichert d'Datei an nei start den Nginx fir déi rezent Ännerungen auszeféieren.
# systemctl restart nginx
Benotzt déi folgend Konfiguratioun an der Apache's httpd.conf Datei oder an enger virtueller Hostkonfiguratioun.
# 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>
Späichert d'Datei an nei start den Apache fir déi rezent Ännerungen auszeféieren.
# systemctl restart httpd
Testen Yii Web Applikatioun Via engem Browser
Ier Dir eis Yii Webapplikatioun testen, vergewëssert Iech de Sécherheetskontext vum /web/assets/
Verzeechnes ze aktualiséieren fir et schrëftbar un de Webprozess ze maachen, andeems Dir de folgende Kommando ausféiert.
# 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]
Als nächst, update Är Firewalld Regelen fir HTTP an HTTPS Ufroen duerch d'Firewall op den Nginx Server z'erméiglechen.
# firewall-cmd --zone=public --add-service=http --permanent # firewall-cmd --zone=public --add-service=https --permanent # firewall-cmd --reload
Endlech, test ob Är Webapplikatioun gutt funktionnéiert a gëtt vun Nginx oder Apache zerwéiert. Öffnen e Webbrowser a weisen op déi folgend Adress:
http://tecmintapp.lan
D'Standard Yii Applikatioun Websäit soll ugewise ginn wéi am folgende Screenshot gewisen.
Gratulatioun! Dir hutt déi lescht Generatioun vum Yii PHP Kader erfollegräich installéiert an et konfiguréiert fir mat Nginx oder Apache op CentOS 8 ze schaffen.
Fir méi Informatioun a wéi Dir Yii benotzt fir Är Webapplikatioun ze bauen, kuckt den Yii definitive Guide.