Kā instalēt Yii PHP Framework uz Ubuntu


Yii (izrunā Yee vai [ji:]) ir bezmaksas un atvērta pirmkoda, ātrs, augstas veiktspējas, drošs, elastīgs, tomēr pragmatisks un efektīvs vispārējs tīmekļa programmēšanas ietvars visu veidu tīmekļa lietojumprogrammu izstrādei, izmantojot PHP.

Šajā rakstā jūs uzzināsiet, kā instalēt jaunāko Yii ietvara versiju Ubuntu LTS (ilgtermiņa atbalsts) laidienos, lai sāktu attīstīt modernas PHP tīmekļa lietojumprogrammas.

Yii pieder šādi Ubuntu LTS (ilgtermiņa atbalsts) izlaidumi:

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

  • darbojas Ubuntu servera instance.
  • LEMP kaudze ar PHP 5.4.0 vai jaunāku versiju.
  • Komponists - PHP lietojumprogrammu līmeņa pakotņu pārvaldnieks.

Šajā lapā

  • Yii Framework instalēšana, izmantojot komponistu Ubuntu
  • Yii palaišana, izmantojot PHP Development Server
  • Yii projekta palaišana ražošanā, izmantojot NGINX HTTP serveri
  • Iespējojiet HTTPS Yii lietojumprogrammās, izmantojot Let’s Encrypt

Ir divi veidi, kā instalēt Yii, izmantojot Composer pakotņu pārvaldnieku vai instalējot to no arhīva faila. Pirmais ir ieteicamais veids, jo tas ļauj instalēt jaunus paplašinājumus vai atjaunināt Yii ar vienu komandu.

Ja jums nav instalēts komponists, varat to instalēt, izmantojot šādas komandas, kas vēlāk instalēs Yii un pārvaldīs tā atkarības.

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

Kad komponists ir instalēts, pārejiet uz direktoriju /var/www/html/, kurā tiks glabātas jūsu tīmekļa lietojumprogrammas vai vietņu faili, pēc tam instalējiet Yii pakotni, izmantojot komponistu (aizstājiet testproject ar sava tīmekļa lietojumprogrammas direktorijā).

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

Šajā brīdī jūs esat gatavs sākt izmantot Yii sistēmu izstrādei. Lai palaistu PHP izstrādes serveri, pārejiet uz testprojects direktoriju (direktorija nosaukumam jābūt atšķirīgam atkarībā no iepriekšējā komandā norādītā), pēc tam palaidiet izstrādes serveri. Pēc noklusējuma tam vajadzētu darboties 8080 portā.

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

Lai palaistu izstrādes serveri citā, piemēram, 5000 portā, izmantojiet karodziņu --port , kā parādīts.

$ php yii serve --port=5000

Pēc tam atveriet tīmekļa pārlūkprogrammu un pārvietojieties, izmantojot šādu adresi:

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

Lai ražošanā izvietotu un piekļūtu Yii lietojumprogrammai, nepieciešams HTTP serveris, piemēram, atbalstīta tīmekļa servera programmatūra.

Lai piekļūtu Yii lietojumprogrammai, neievadot portu, jums jāizveido nepieciešamais DNS A ieraksts, lai novirzītu domēnu uz Yii ietvara lietojumprogrammas serveri.

Šajā rokasgrāmatā mēs parādīsim, kā izvietot Yii lietojumprogrammu ar NGINX. Tātad, jums ir jāizveido virtuāls resursdatora vai servera bloka konfigurācijas fails jūsu lietojumprogrammas direktorijā/etc/nginx/sites-available/directory, lai NGINX varētu to apkalpot.

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

Kopējiet un ielīmējiet tajā šādu konfigurāciju (aizstājiet testprojects.me un www.testprojects.me ar savu domēna nosaukumu). Norādiet arī līdzekļus, kā NGINX pārsūtīs FastCGI pieprasījumus uz PHP-FPM, šajā piemērā mēs izmantojam UNIX ligzdu (/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;
    }
}

Saglabājiet failu un aizveriet to.

Pēc tam pārbaudiet NGINX konfigurācijas sintakses pareizību, ja tā ir Labi, iespējojiet jauno lietojumprogrammu, kā parādīts:

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

Pēc tam restartējiet pakalpojumu NGINX, lai piemērotu jaunās izmaiņas:

$ sudo systemctl restart nginx

Atgriezieties savā tīmekļa pārlūkprogrammā un pārvietojieties, izmantojot savu domēna vārdu.

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

Visbeidzot, jūsu vietnē ir jāiespējo HTTPS. Varat izmantot bezmaksas Let’s Encrypt SSL/TLS sertifikātu (kuru automatizē un atzīst visas mūsdienu tīmekļa pārlūkprogrammas), vai arī iegūt sertifikātu no komerciālās SI.

Ja nolemjat izmantot Let’s Encrypt sertifikātu, to var automātiski instalēt un konfigurēt, izmantojot certbot rīku. Lai instalētu certbot, jums jāinstalē snapd, lai to instalētu.

$ sudo snap install --classic certbot

Pēc tam izmantojiet certbot, lai iegūtu un instalētu/konfigurētu savu bezmaksas SSL/TLS sertifikātu lietošanai ar NGINX tīmekļa serveri (atjaunošanai norādiet derīgu e-pasta ziņojumu un izpildiet norādījumus, lai pabeigtu instalēšanu):

$ sudo certbot --nginx

Tagad vēlreiz dodieties uz tīmekļa pārlūkprogrammu, lai apstiprinātu, ka jūsu Yii lietojumprogramma tagad darbojas ar HTTPS (atcerieties, ka HTTP automātiski jāpāradresē uz HTTPS).

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

Lai iegūtu papildinformāciju, piemēram, par lietojumprogrammas pievienošanu datu bāzei, skatiet Yii pamatdokumentāciju no oficiālās Yii projekta vietnes. Izmēģiniet to un dalieties savās domās par Yii vai uzdodiet jautājumus, izmantojot zemāk esošo atsauksmju veidlapu.