Kuidas installida Yii PHP raamistik Ubuntu


Yii (hääldatakse Yee või [ji:]) on tasuta ja avatud lähtekoodiga, kiire, suure jõudlusega, turvaline, paindlik, kuid samas pragmaatiline ja tõhus üldine veebiprogrammeerimise raamistik igasuguste veebirakenduste arendamiseks PHP abil.

Sellest artiklist saate teada, kuidas installida Yii raamistiku uusim versioon Ubuntu LTS (pikaajaline tugi) väljaannetesse, et alustada kaasaegsete PHP veebirakenduste väljatöötamist.

Yii-l on järgmised Ubuntu LTS (pikaajaline tugi) väljaanded:

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

  • Ubuntu serveri töötav eksemplar.
  • LEMP-i virn PHP 5.4.0 või uuemaga.
  • helilooja - PHP rakendustaseme paketihaldur.

Sellel lehel

  • Yii Framework'i installimine Ubuntu Composeri kaudu
  • Yii käitamine PHP arendusserveri abil
  • Yii projekti käitamine tootmises NGINX HTTP serveri abil
  • Lubage HTTPS Yii rakendustes, kasutades Let’s Encrypt

Yii installimiseks on kaks võimalust, kasutades Composeri paketihaldurit või installides selle arhiivifailist. Esimene on soovitatav viis, kuna see võimaldab teil ühe käsu abil installida uusi laiendusi või värskendada Yii.

Kui teil pole Composerit installitud, saate selle installida järgmiste käskude abil, mis hiljem installivad Yii ja haldavad selle sõltuvusi.

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

Kui olete helilooja installinud, minge kataloogi /var/www/html/, mis salvestab teie veebirakendused või veebisaidi failid, seejärel installige helilooja abil Yii pakett (asendage testproject oma veebirakenduse kataloog).

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

Siinkohal olete valmis arendamiseks kasutama Yii raamistikku. PHP arendusserveri käivitamiseks minge testprojects kataloogi (teie kataloogi nimi peaks olema erinev, sõltuvalt eelmises käsus määratletust), seejärel käivitage arendusserver. Vaikimisi peaks see töötama pordis 8080.

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

Arendusserveri käitamiseks mõnes teises pordis, näiteks pordis 5000, kasutage lippu --port , nagu näidatud.

$ php yii serve --port=5000

Seejärel avage oma veebibrauser ja navigeerige järgmise aadressi abil:

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

Tootmises oleva Yii-rakenduse juurutamiseks ja sellele juurdepääsemiseks on vaja HTTP-serverit, näiteks toetatud veebiserveri tarkvara.

Yii-rakendusele juurdepääsuks ilma porti sisestamata peate looma nõutava DNS-i A -kirje, et suunata oma domeen Yii-raamistiku rakendusserverisse.

Selle juhendi jaoks näitame, kuidas YIN-rakendust NGINX-iga juurutada. Niisiis, peate oma rakenduse jaoks kataloogi/etc/nginx/sites-available/kataloogi alla looma virtuaalse hosti- või serveribloki konfiguratsioonifaili, et NGINX saaks seda teenindada.

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

Kopeerige ja kleepige sinna järgmine konfiguratsioon (asendage testprojects.me ja www.testprojects.me oma domeeninimega). Täpsustage ka vahendid, mille abil NGINX edastab FastCGI päringud PHP-FPM-ile. Selles näites kasutame UNIX-i soklit (/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;
    }
}

Salvestage fail ja sulgege see.

Seejärel kontrollige NGINX-i konfiguratsioonisüntaksi õigsust, kui see on Ok, lubage uus rakendus, nagu näidatud:

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

Seejärel taaskäivitage NGINX-i teenus uute muudatuste rakendamiseks:

$ sudo systemctl restart nginx

Minge tagasi oma veebibrauserisse ja navigeerige oma domeeninimega.

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

Lõpuks peate oma veebisaidil lubama HTTPS-i. Võite kasutada tasuta Let’s Encrypt SSL/TLS-i sertifikaati (mille kõik tänapäevased veebibrauserid automatiseerivad ja tunnustavad) või hankida sertifikaadi kaubanduslikult CA-lt.

Kui otsustate kasutada Let’s Encrypt sertifikaati, saab selle certboti tööriista abil automaatselt installida ja konfigureerida. Certboti installimiseks peate selle installimiseks installima snapdi.

$ sudo snap install --classic certbot

Seejärel kasutage certboti, et hankida ja installida/konfigureerida tasuta SSL/TLS-sertifikaat NGINX-veebiserveriga kasutamiseks (esitage kehtiv e-posti aadress uuendamiseks ja järgige installimise lõpuleviimiseks kuvatavaid juhiseid):

$ sudo certbot --nginx

Nüüd minge veel kord oma veebibrauserisse ja veenduge, et teie Yii rakendus töötab nüüd HTTPS-is (pidage meeles, et HTTP peaks automaatselt HTTPS-i suunama).

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

Lisateavet, näiteks rakenduse ühendamine andmebaasiga, leiate Yii raamistiku dokumentatsioonist ametlikult Yii projekti veebisaidilt. Proovige ja jagage oma mõtteid Yii kohta või küsige küsimusi allpool oleva tagasisidevormi kaudu.