Kaip įdiegti „Yii PHP Framework“ Ubuntu


Yii (tariama Yee arba [ji:]) yra nemokama atvirojo kodo, greita, didelio našumo, saugi, lanksti, bet pragmatiška, ir efektyvi bendroji žiniatinklio programavimo sistema, skirta kurti visų rūšių žiniatinklio programas naudojant PHP.

Šiame straipsnyje sužinosite, kaip įdiegti naujausią Yii framework versiją Ubuntu LTS (ilgalaikio palaikymo) leidimuose ir pradėti kurti modernias PHP žiniatinklio programas.

Platformos palaikymas

Yii yra šie Ubuntu LTS (ilgalaikio palaikymo) leidimai:

  • Ubuntu 20.04 LTS („Židinio“)
  • Ubuntu 18.04 LTS („Bionic“)
  • Ubuntu 16.04 LTS („Xenial“)

Reikalavimai

  • Veikiantis Ubuntu serverio egzempliorius.
  • LEMP krūva su PHP 5.4.0 arba naujesne versija.
  • A Composer – programos lygio paketų tvarkyklė, skirta PHP.

Šiame puslapyje

  • „Yii Framework“ diegimas per „Composer“ Ubuntu
  • „Yii“ paleidimas naudojant PHP plėtros serverį
  • Yii projekto vykdymas gamyboje naudojant NGINX HTTP serverį
  • Įgalinkite HTTPS „Yii“ programose naudodami „Let's Encrypt“.

Yra du būdai įdiegti Yii: naudojant Composer paketų tvarkyklę arba įdiegiant iš archyvo failo. Pirmasis yra rekomenduojamas būdas, nes jis leidžia įdiegti naujus plėtinius arba atnaujinti Yii viena komanda.

„Yii Framework“ diegimas per „Composer“ Ubuntu

Jei nesate įdiegę Composer, galite ją įdiegti naudodami šias komandas, kurios vėliau įdiegs Yii ir valdys jo priklausomybes.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Įdiegę kompozitorių, eikite į katalogą /var/www/html/, kuriame bus saugomi jūsų žiniatinklio programų arba svetainių failai, tada įdiekite paketą Yii naudodami >kompozitorius (pakeiskite testproject savo žiniatinklio programos katalogo pavadinimu).

cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic testproject

„Yii“ paleidimas naudojant PHP plėtros serverį

Šiuo metu esate pasirengę pradėti naudoti Yii kūrimo sistemą. Norėdami paleisti PHP kūrimo serverį, eikite į katalogą testprojects (jūsų katalogo pavadinimas turėtų skirtis priklausomai nuo to, ką nurodėte ankstesnėje komandoje), tada paleiskite kūrimo serverį. Pagal numatytuosius nustatymus jis turėtų veikti per prievadą 8080.

cd /var/www/html/testproject/
php yii serve

Norėdami paleisti kūrimo serverį kitame prievade, pvz., prievade 5000, naudokite žymą --port, kaip parodyta.

php yii serve --port=5000

Tada atidarykite žiniatinklio naršyklę ir naršykite naudodami šį adresą:

http://SERVER_IP:8080
OR
http://SERVER_IP:5000

Yii projekto vykdymas gamyboje naudojant NGINX HTTP serverį

Norint įdiegti ir pasiekti gamybinę Yii programą, reikalingas HTTP serveris, pvz., NGINX, Apache/HTTPD arba bet kuri kita palaikoma žiniatinklio serverio programinė įranga.

Norėdami pasiekti Yii programą neįvesdami prievado, turite sukurti reikiamą DNS A įrašą, kad domenas būtų nukreiptas į Yii sistemos programos serverį. .

Šiame vadove parodysime, kaip įdiegti Yii programą naudojant NGINX. Taigi, turite sukurti virtualaus pagrindinio kompiuterio arba serverio bloko konfigūracijos failą savo programos kataloge /etc/nginx/sites-available/, kad NGINX galėtų ją aptarnauti.

sudo vim /etc/nginx/sites-available/testproject.me.conf

Nukopijuokite ir įklijuokite toliau nurodytą konfigūraciją (pakeiskite testprojects.me ir www.testprojects.me savo domeno pavadinimu). Taip pat nurodykite, kaip NGINX perduos FastCGI užklausas PHP-FPM, šiame pavyzdyje mes naudojame UNIX lizdą (/ 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;
    }
}

Išsaugokite failą ir uždarykite jį.

Tada patikrinkite, ar NGINX konfigūracijos sintaksė yra teisinga. Jei ji tinka, įgalinkite naują programą, kaip parodyta:

sudo nginx -t
sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf

Tada iš naujo paleiskite NGINX paslaugą, kad pritaikytumėte naujus pakeitimus:

sudo systemctl restart nginx

Grįžkite į savo žiniatinklio naršyklę ir naršykite naudodami savo domeno pavadinimą.

http://testprojects.me
OR
http://www.testprojects.me

Įgalinkite HTTPS „Yii“ programose naudodami „Let's Encrypt“.

Galiausiai savo svetainėje turite įgalinti HTTPS. Galite naudoti nemokamą Let’s Encrypt SSL/TLS sertifikatą (kuris yra automatizuotas ir atpažįstamas visų šiuolaikinių interneto naršyklių) arba įsigyti sertifikatą iš komercinės CA.

Jei nuspręsite naudoti „Let’s Encrypt“ sertifikatą, jį galima automatiškai įdiegti ir sukonfigūruoti naudojant certbot įrankį. Norėdami įdiegti certbot, turite įdiegti snapd, kad jį įdiegtumėte.

sudo snap install --classic certbot

Tada naudokite certbot, kad gautumėte ir įdiegtumėte/sukonfigūruotumėte nemokamą SSL/TLS sertifikatą, skirtą naudoti su NGINX žiniatinklio serveriu (pateikite galiojantį el. pašto adresą, kad galėtumėte atnaujinti, ir vykdykite nurodymus, kad užbaigtumėte diegimą):

sudo certbot --nginx

Dabar dar kartą eikite į žiniatinklio naršyklę ir patvirtinkite, kad jūsų Yii programa dabar veikia naudojant HTTPS (atminkite, kad HTTP turėtų automatiškai peradresuoti į >HTTPS).

http://testprojects.me
OR
http://www.testprojects.me

Norėdami gauti daugiau informacijos, pvz., programos prijungimą prie duomenų bazės, žr. Yii pagrindų dokumentaciją oficialioje Yii projekto svetainėje. Išbandykite ir pasidalykite savo mintimis apie Yii arba užduokite klausimų naudodami toliau pateiktą atsiliepimų formą.