Kuinka asentaa Yii PHP Framework Ubuntuun


Yii (lausutaan Yee tai [ji:]) on ilmainen ja avoimen lähdekoodin nopea, tehokas, turvallinen, joustava mutta käytännöllinen ja tehokas yleinen web-ohjelmointikehys kaikenlaisten PHP-sovellusten kehittämiseen.

Tässä artikkelissa opit asentamaan Yii-kehyksen uusimman version Ubuntu LTS (pitkäaikainen tuki) -julkaisuihin, jotta voit aloittaa nykyaikaisten PHP-verkkosovellusten kehittämisen.

Alustan tuki

Yii sisältää seuraavat Ubuntu LTS (pitkäaikainen tuki) -julkaisut:

  • Ubuntu 20.04 LTS ("Focal")
  • Ubuntu 18.04 LTS ("Bionic")
  • Ubuntu 16.04 LTS ("Xenial")

Vaatimukset

  • Ubuntu-palvelimen käynnissä oleva esiintymä.
  • LEMP-pino, jossa on PHP 5.4.0 tai uudempi.
  • A Composer – sovellustason paketinhallinta PHP:lle.

Tällä sivulla

  • Yii Frameworkin asentaminen Composerin kautta Ubuntuun
  • Yii:n käyttäminen PHP-kehityspalvelimella
  • Yii-projektin suorittaminen tuotannossa NGINX HTTP -palvelimen avulla
  • Ota HTTPS käyttöön Yii-sovelluksissa Let’s Encryptin avulla

On kaksi tapaa asentaa Yii: käyttämällä Composer-pakettienhallintaa tai asentamalla se arkistotiedostosta. Edellinen on suositeltava tapa, koska sen avulla voit asentaa uusia laajennuksia tai päivittää Yii yhdellä komennolla.

Yii Frameworkin asentaminen Composerin kautta Ubuntuun

Jos sinulla ei ole Composeria asennettuna, voit asentaa sen seuraavilla komennoilla, jotka asentavat myöhemmin Yiin ja hallitsevat sen riippuvuuksia.

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

Kun olet asentanut säveltäjän, siirry hakemistoon /var/www/html/, joka tallentaa verkkosovellustesi tai verkkosivustojesi tiedostot, ja asenna sitten Yii-paketti käyttämällä >säveltäjä (korvaa testprojekti verkkosovelluksesi hakemiston nimellä).

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

Yii:n käyttäminen PHP-kehityspalvelimella

Tässä vaiheessa olet valmis aloittamaan Yii-kehityskehyksen käytön. Suorita PHP-kehityspalvelin siirtymällä testprojects-hakemistoon (hakemiston nimesi tulee olla erilainen sen mukaan, mitä määritit edellisessä komennossa), ja käynnistä sitten kehityspalvelin. Oletuksena sen pitäisi toimia portissa 8080.

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

Jos haluat käyttää kehityspalvelinta toisessa portissa, esimerkiksi portissa 5000, käytä --port-lippua kuvan mukaisesti.

php yii serve --port=5000

Avaa sitten verkkoselain ja navigoi käyttämällä seuraavaa osoitetta:

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

Yii-projektin suorittaminen tuotannossa NGINX HTTP -palvelimen avulla

Yii-sovelluksen käyttöönotto ja käyttäminen tuotannossa edellyttää HTTP-palvelinta, kuten NGINX, Apache/HTTPD tai mikä tahansa muu tuettu verkkopalvelinohjelmisto.

Jotta voit käyttää Yii-sovellusta kirjoittamatta porttiasi, sinun on luotava tarvittava DNS A-tietue, joka osoittaa verkkotunnuksesi Yii-kehyssovelluspalvelimellesi. .

Tässä oppaassa näytämme, kuinka Yii-sovellus otetaan käyttöön NGINX-sovelluksella. Sinun on siis luotava sovelluksellesi virtuaalinen isäntä- tai palvelinlohkon määritystiedosto /etc/nginx/sites-available/-hakemistoon, jotta NGINX voi palvella sitä.

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

Kopioi ja liitä siihen seuraavat asetukset (korvaa testprojects.me ja www.testprojects.me verkkotunnuksellasi). Määritä myös keinot NGINX välittää FastCGI-pyynnöt PHP-FPM:lle, tässä esimerkissä käytämme UNIX-liitäntää (/ 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;
    }
}

Tallenna tiedosto ja sulje se.

Tarkista sitten NGINX-määrityssyntaksin oikeellisuus. Jos se on OK, ota uusi sovellus käyttöön kuvan osoittamalla tavalla:

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

Käynnistä sitten NGINX-palvelu uudelleen ottaaksesi käyttöön uudet muutokset:

sudo systemctl restart nginx

Palaa verkkoselaimeen ja navigoi verkkotunnuksesi nimellä.

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

Ota HTTPS käyttöön Yii-sovelluksissa Let’s Encryptin avulla

Lopuksi sinun on otettava HTTPS käyttöön verkkosivustossasi. Voit joko käyttää ilmaista Let’s Encrypt SSL/TLS -varmennetta (joka on automatisoitu ja kaikkien nykyaikaisten verkkoselaimien tunnistama) tai hankkia varmenteen kaupalliselta CA:lta.

Jos päätät käyttää Let’s Encrypt -varmennetta, se voidaan asentaa ja määrittää automaattisesti certbot-työkalulla. Jos haluat asentaa certbotin, sinun on asennettava snapd sen asentamiseksi.

sudo snap install --classic certbot

Käytä sitten certbotia hankkiaksesi ja asentaaksesi/määrittääksesi ilmaisen SSL/TLS-varmenteen käytettäväksi NGINX-verkkopalvelimen kanssa (toimita voimassa oleva uusintasähköpostiosoite ja suorita asennus loppuun seuraamalla ohjeita):

sudo certbot --nginx

Siirry nyt vielä kerran verkkoselaimeen ja varmista, että Yii-sovelluksesi toimii nyt HTTPS:ssä (muista, että HTTP ohjaa automaattisesti osoitteeseen >HTTPS).

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

Lisätietoja, kuten sovelluksen yhdistäminen tietokantaan, on Yii-kehyksen dokumentaatiossa Yii-projektin viralliselta verkkosivustolta. Kokeile ja jaa ajatuksesi Yiistä tai esitä kysymyksiä alla olevan palautelomakkeen kautta.