Kif Tinstalla Yii PHP Framework fuq Ubuntu


Yii (pronunzjata Yee jew [ji:]) huwa qafas ta' programmazzjoni ġenerika tal-web b'xejn u miftuħ, veloċi, ta' prestazzjoni għolja, sikur, flessibbli iżda pragmatiku, u effiċjenti għall-iżvilupp ta' kull tip ta' applikazzjonijiet tal-web bl-użu tal-PHP.

F'dan l-artikolu, int se titgħallem kif tinstalla l-aħħar verżjoni tal-qafas Yii fl-Ubuntu LTS (appoġġ fit-tul) rilaxxi biex tibda tiżviluppa applikazzjonijiet moderni tal-Web PHP.

Yii għandu r-rilaxxi ta' Ubuntu LTS (appoġġ fit-tul) li ġejjin:

  • Ubuntu 20.04 LTS (Fokali)
  • Ubuntu 18.04 LTS (Bionic)
  • Ubuntu 16.04 LTS (Xenial)

  • Istanza li taħdem tas-server Ubuntu.
  • Munzell LEMP b'PHP 5.4.0 jew ogħla.
  • Kompożitur – maniġer tal-pakkett fil-livell ta' applikazzjoni għall-PHP.

Fuq din il-paġna

  • Installazzjoni ta' Yii Framework permezz ta' Composer f'Ubuntu
  • Tmexxi Yii billi tuża PHP Development Server
  • Tmexxi Proġett Yii fil-Produzzjoni Bl-użu ta' Server HTTP NGINX
  • Ippermetti HTTPS fuq Applikazzjonijiet Yii billi tuża Let's Encrypt

Hemm żewġ modi kif tinstalla Yii, billi tuża l-maniġer tal-pakkett tal-Kompożitur jew billi tinstallah minn fajl tal-arkivju. L-ewwel huwa l-mod rakkomandat, peress li jippermettilek tinstalla estensjonijiet ġodda jew taġġorna Yii bi kmand wieħed.

Jekk ma jkollokx il-Kompożitur installat, tista 'tinstallah billi tuża l-kmandi li ġejjin, li aktar tard jinstallaw Yii u jimmaniġġjaw id-dipendenzi tiegħu.

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

Ladarba tkun installat il-kompożitur, imxi fid-direttorju /var/www/html/ li se jaħżen l-applikazzjonijiet tal-web jew il-fajls tal-websajts tiegħek, imbagħad installa l-pakkett Yii billi tuża l-kompożitur (issostitwixxi l-proġett tat-test bl-isem tal-kompożitur tiegħek). direttorju tal-applikazzjoni tal-web).

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

F'dan il-punt, inti lest biex tibda tuża l-qafas Yii għall-iżvilupp. Biex tħaddem is-server tal-iżvilupp PHP, mur fid-direttorju testprojects (l-isem tad-direttorju tiegħek għandu jkun differenti skont dak li speċifikajt fil-kmand preċedenti), imbagħad iniedi s-server tal-iżvilupp. B'mod awtomatiku, għandu jaħdem fuq il-port 8080.

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

Biex tħaddem is-server tal-iżvilupp fuq port ieħor, pereżempju, port 5000, uża l-bandiera --port kif muri.

$ php yii serve --port=5000

Imbagħad iftaħ il-web browser tiegħek u naviga billi tuża l-indirizz li ġej:

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

Biex tuża u taċċessa applikazzjoni Yii fil-produzzjoni, teħtieġ server HTTP bħal softwer ta 'server tal-Web appoġġjat.

Biex taċċessa l-applikazzjoni Yii mingħajr ma ttajpja l-port tiegħek, trid toħloq ir-rekord A DNS meħtieġ biex tipponta d-dominju tiegħek lejn is-server tal-applikazzjoni tal-qafas Yii tiegħek.

Għal din il-gwida, se nuru kif tuża applikazzjoni Yii b'NGINX. Għalhekk, trid toħloq host virtwali jew fajl tal-konfigurazzjoni tal-blokk tas-server taħt id-direttorju /etc/nginx/sites-available/ għall-applikazzjoni tiegħek sabiex NGINX ikun jista’ jservih.

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

Ikkopja u waħħal il-konfigurazzjoni li ġejja fiha (issostitwixxi testprojects.me u www.testprojects.me bl-isem tad-dominju tiegħek). Speċifika wkoll il-mezzi li NGINX se jgħaddi t-talbiet FastCGI lil PHP-FPM, f'dan l-eżempju, qed nużaw socket 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;
    }
}

Issejvja l-fajl u agħlaqha.

Imbagħad iċċekkja s-sintassi tal-konfigurazzjoni NGINX għall-korrettezza, jekk hija Ok, ppermetti l-applikazzjoni l-ġdida kif muri:

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

Imbagħad erġa ibda s-servizz NGINX biex tapplika l-bidliet il-ġodda:

$ sudo systemctl restart nginx

Mur lura għall-web browser tiegħek u naviga bl-isem tad-dominju tiegħek.

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

Fl-aħħar nett, jeħtieġ li tattiva HTTPS fuq il-websajt tiegħek. Tista 'jew tuża ċertifikat Let's Encrypt SSL/TLS b'xejn (li huwa awtomatizzat u rikonoxxut mill-web browsers moderni kollha) jew takkwista ċertifikat minn CA kummerċjali.

Jekk tiddeċiedi li tuża ċertifikat Let's Encrypt, jista' jiġi installat u kkonfigurat awtomatikament billi tuża l-għodda certbot. Biex tinstalla certbot, għandek bżonn tinstalla snapd biex tinstallah.

$ sudo snap install --classic certbot

Imbagħad uża certbot biex tikseb u tinstalla/konfigura ċ-ċertifikat SSL/TLS b'xejn tiegħek għall-użu mas-server tal-web NGINX (tipprovdi email valida għat-tiġdid u segwi l-istruzzjonijiet biex tlesti l-installazzjoni):

$ sudo certbot --nginx

Issa mur fil-web browser tiegħek għal darba oħra biex tikkonferma li l-applikazzjoni Yii tiegħek issa qed taħdem fuq HTTPS (ftakar li HTTP għandu awtomatikament jidderieġi mill-ġdid lejn HTTPS).

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

Għal aktar informazzjoni bħall-konnessjoni tal-applikazzjoni tiegħek ma 'database, ara d-dokumentazzjoni tal-qafas Yii mill-websajt uffiċjali tal-proġett Yii. Ipprovaha u aqsam il-ħsibijiet tiegħek dwar Yii jew staqsi xi mistoqsijiet permezz tal-formola ta' feedback hawn taħt.