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.