Kako namestiti Yii PHP Framework na Ubuntu


Yii (izgovarja se Yee ali [ji:]) je brezplačen in odprtokoden, hiter, visoko zmogljiv, varen, prilagodljiv, a pragmatičen in učinkovit splošni okvir spletnega programiranja za razvoj vseh vrst spletnih aplikacij s pomočjo PHP.

V tem članku boste izvedeli, kako namestiti najnovejšo različico okvira Yii v različice Ubuntu LTS (dolgoročna podpora), da začnete razvijati sodobne spletne aplikacije PHP.

Yii ima naslednje izdaje Ubuntu LTS (dolgoročna podpora):

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

  • Tekoči primerek strežnika Ubuntu.
  • Sklad LEMP s PHP 5.4.0 ali novejšim.
  • Skladatelj - upravitelj paketov na ravni aplikacije za PHP.

Na tej strani

  • Namestitev Yii Framework prek Composerja v Ubuntu
  • Zagon Yii z uporabo PHP razvojnega strežnika
  • Zagon projekta Yii v proizvodnji z uporabo strežnika NGINX HTTP
  • Omogočite HTTPS v aplikacijah Yii s pomočjo Let’s Encrypt

Yii lahko namestite na dva načina z upraviteljem paketov Composer ali z namestitvijo iz arhivske datoteke. Prvi je priporočljiv način, saj vam omogoča namestitev novih razširitev ali posodobitev Yii z enim samim ukazom.

Če Composerja niste namestili, ga lahko namestite z naslednjimi ukazi, ki bodo pozneje namestili Yii in upravljali njegove odvisnosti.

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

Ko je nameščen skladatelj, se premaknite v imenik /var/www/html/, v katerem bodo shranjene vaše spletne aplikacije ali datoteke spletnih mest, nato z uporabo skladatelja namestite paket Yii (testproject zamenjajte z imenom svojega imenik spletne aplikacije).

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

Na tej točki ste pripravljeni začeti uporabljati Yii okvir za razvoj. Če želite zagnati razvojni strežnik PHP, se premaknite v imenik testprojects (ime vašega imenika mora biti drugačno, odvisno od tega, kaj ste navedli v prejšnjem ukazu), nato zaženite razvojni strežnik. Privzeto bi se moral izvajati na vratih 8080.

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

Če želite zagnati razvojni strežnik na drugih vratih, na primer na vratih 5000, uporabite zastavico --port , kot je prikazano.

$ php yii serve --port=5000

Nato odprite spletni brskalnik in krmarite po naslednjem naslovu:

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

Za uvajanje in dostop do aplikacije Yii v produkciji potrebuje strežnik HTTP, kot je podprta programska oprema spletnega strežnika.

Če želite dostopati do aplikacije Yii, ne da bi vnesli vrata, morate ustvariti zahtevani zapis DNS A , da bo vaša domena usmerjena na strežnik aplikacij Yii framework.

V tem priročniku bomo prikazali, kako namestiti aplikacijo Yii z NGINX. Torej morate v imeniku/etc/nginx/sites-available/za svojo aplikacijo ustvariti konfiguracijsko datoteko navideznega gostitelja ali strežnika, tako da jo bo NGINX lahko služil.

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

Vanjo kopirajte in prilepite naslednjo konfiguracijo ( testprojects.me in www.testprojects.me zamenjajte z imenom svoje domene). Navedite tudi, kako bo NGINX posredoval zahteve FastCGI PHP-FPM, v tem primeru uporabljamo vtičnico 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;
    }
}

Datoteko shranite in zaprite.

Nato preverite pravilnost sintakse konfiguracije NGINX, če je V redu, omogočite novo aplikacijo, kot je prikazano:

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

Nato znova zaženite storitev NGINX, da uveljavite nove spremembe:

$ sudo systemctl restart nginx

Vrnite se v spletni brskalnik in krmarite z imenom domene.

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

Na koncu morate na svojem spletnem mestu omogočiti HTTPS. Lahko uporabite brezplačno potrdilo Let’s Encrypt SSL/TLS (ki ga avtomatizirajo in prepoznajo vsi sodobni spletni brskalniki) ali pridobite potrdilo od komercialnega overitelja potrdil.

Če se odločite za uporabo potrdila Let’s Encrypt, ga lahko samodejno namestite in konfigurirate z orodjem certbot. Če želite namestiti certbot, morate namestiti snapd, da ga namestite.

$ sudo snap install --classic certbot

Nato s certbot pridobite in namestite/konfigurirajte brezplačno potrdilo SSL/TLS za uporabo s spletnim strežnikom NGINX (navedite veljaven e-poštni naslov za obnovitev in sledite navodilom za dokončanje namestitve):

$ sudo certbot --nginx

Zdaj še enkrat pojdite v spletni brskalnik, da potrdite, da se vaša aplikacija Yii zdaj izvaja na HTTPS (ne pozabite, da mora HTTP samodejno preusmeriti na HTTPS).

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

Za več informacij, kot je povezovanje vaše aplikacije z bazo podatkov, glejte dokumentacijo okvira Yii na uradnem spletnem mestu projekta Yii. Preizkusite in delite svoje misli o Yii ali zastavite kakršna koli vprašanja prek spodnjega obrazca za povratne informacije.