Jinsi ya Kufunga Mfumo wa PHP wa Yii kwenye Ubuntu
Yii (inatamkwa Yee au [ji:]) ni chanzo huria na huria, haraka, utendakazi wa hali ya juu, salama, inayoweza kunyumbulika lakini ya kivitendo, na mfumo madhubuti wa utayarishaji wa programu za wavuti kwa kuunda kila aina ya programu za wavuti kwa kutumia PHP.
Katika makala hii, utajifunza jinsi ya kusakinisha toleo jipya zaidi la mfumo wa Yii katika matoleo ya Ubuntu LTS (msaada wa muda mrefu) ili kuanza kutengeneza programu za kisasa za PHP Web.
Yii anashikilia matoleo yafuatayo ya Ubuntu LTS (msaada wa muda mrefu):
- Ubuntu 20.04 LTS (\Focal)
- Ubuntu 18.04 LTS (\Bionic)
- Ubuntu 16.04 LTS (\Xenial)
- Mfano unaoendelea wa seva ya Ubuntu.
- Bunda la LEMP lenye PHP 5.4.0 au matoleo mapya zaidi.
- Mtunzi - kidhibiti cha kiwango cha programu cha PHP.
Katika ukurasa huu
- Kusakinisha Mfumo wa Yii kupitia Mtunzi katika Ubuntu
- Kuendesha Yii Kwa Kutumia Seva ya Maendeleo ya PHP
- Kuendesha Mradi wa Yii katika Uzalishaji Kwa Kutumia Seva ya HTTP ya NGINX
- Washa HTTPS kwenye Programu za Yii Ukitumia Let’s Encrypt
Kuna njia mbili za kusakinisha Yii, kwa kutumia kidhibiti cha kifurushi cha Mtunzi au kwa kukisakinisha kutoka kwa faili ya kumbukumbu. Ya kwanza ndiyo njia iliyopendekezwa, kwani inakuwezesha kusakinisha viendelezi vipya au kusasisha Yii kwa amri moja.
Ikiwa huna Mtunzi aliyesakinishwa, unaweza kuiweka kwa kutumia amri zifuatazo, ambazo baadaye zitaweka Yii na kudhibiti utegemezi wake.
$ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer $ sudo chmod +x /usr/local/bin/composer
Mara tu unaposakinisha mtunzi, nenda kwenye saraka /var/www/html/
ambayo itahifadhi programu zako za wavuti au faili za tovuti, kisha usakinishe kifurushi cha Yii kwa kutumia mtunzi (badilisha testproject kwa jina la yako. saraka ya programu ya wavuti).
$ cd /var/www/html/ $ composer create-project --prefer-dist yiisoft/yii2-app-basic testproject
Kwa hatua hii, uko tayari kuanza kutumia mfumo wa Yii kwa maendeleo. Ili kuendesha seva ya ukuzaji wa PHP, nenda kwenye saraka ya miradi ya majaribio (jina la saraka yako linapaswa kuwa tofauti kulingana na ulichotaja kwenye amri iliyotangulia), kisha uzindua seva ya ukuzaji. Kwa chaguo-msingi, inapaswa kuendeshwa kwenye bandari 8080.
$ cd /var/www/html/testproject/ $ php yii serve
Ili kuendesha seva ya usanidi kwenye mlango mwingine, kwa mfano, lango 5000, tumia alama ya --port
kama inavyoonyeshwa.
$ php yii serve --port=5000
Kisha fungua kivinjari chako cha wavuti na uende kwa kutumia anwani ifuatayo:
http://SERVER_IP:8080 OR http://SERVER_IP:5000
Ili kupeleka na kufikia programu ya Yii katika uzalishaji, inahitaji seva ya HTTP kama vile programu inayotumika ya seva ya Wavuti.
Ili kufikia programu ya Yii bila kuandika mlango wako, unahitaji kuunda rekodi inayohitajika ya DNS A
ili kuelekeza kikoa chako kwenye seva yako ya programu ya mfumo wa Yii.
Kwa mwongozo huu, tutaonyesha jinsi ya kupeleka programu ya Yii na NGINX. Kwa hivyo, unahitaji kuunda mwenyeji wa kawaida au faili ya usanidi wa kuzuia seva chini ya /etc/nginx/sites-available/ saraka ya programu yako ili NGINX iweze kuitumikia.
$ sudo vim /etc/nginx/sites-available/testproject.me.conf
Nakili na ubandike usanidi ufuatao ndani yake (badilisha testprojects.me
na www.testprojects.me
na jina la kikoa chako). Pia taja njia ambazo NGINX itapitisha maombi ya FastCGI kwa PHP-FPM, katika mfano huu, tunatumia tundu la UNIX (/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; } }
Hifadhi faili na uifunge.
Kisha angalia syntax ya usanidi wa NGINX kwa usahihi, ikiwa ni sawa, wezesha programu mpya kama inavyoonyeshwa:
$ sudo nginx -t $ sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf
Kisha anza tena huduma ya NGINX ili kutumia mabadiliko mapya:
$ sudo systemctl restart nginx
Rudi kwenye kivinjari chako cha wavuti na uabiri ukitumia jina la kikoa chako.
http://testprojects.me OR http://www.testprojects.me
Hatimaye, unahitaji kuwezesha HTTPS kwenye tovuti yako. Unaweza kutumia cheti kisicholipishwa cha Let's Encrypt SSL/TLS (ambacho kinajiendesha kiotomatiki na kutambuliwa na vivinjari vyote vya kisasa vya wavuti) au kupata cheti kutoka kwa CA ya kibiashara.
Ukiamua kutumia cheti cha Hebu Tusimba, kinaweza kusakinishwa na kusanidiwa kiotomatiki kwa kutumia zana ya certbot. Ili kusakinisha certbot, unahitaji kusakinisha snapd ili uisakinishe.
$ sudo snap install --classic certbot
Kisha tumia certbot kupata na kusakinisha/kusanidi cheti chako cha bila malipo cha SSL/TLS kwa matumizi na seva ya wavuti ya NGINX (toa barua pepe halali ya kusasishwa na ufuate madokezo ili kukamilisha usakinishaji):
$ sudo certbot --nginx
Sasa nenda kwenye kivinjari chako kwa mara nyingine tena ili kuthibitisha kwamba programu yako ya Yii sasa inaendeshwa kwenye HTTPS (kumbuka HTTP inapaswa kuelekeza upya kiotomatiki kwa HTTPS).
http://testprojects.me OR http://www.testprojects.me
Kwa maelezo zaidi kama vile kuunganisha programu yako kwenye hifadhidata, angalia hati za mfumo wa Yii kutoka kwa tovuti rasmi ya mradi wa Yii. Ijaribu na ushiriki mawazo yako kuhusu Yii au uulize maswali yoyote kupitia fomu ya maoni iliyo hapa chini.