Hvernig á að setja upp Yii PHP Framework á Ubuntu


Yii (borið fram Yee eða [ji:]) er ókeypis og opinn uppspretta, hraður, afkastamikill, öruggur, sveigjanlegur en samt raunsærri og skilvirkur almennur vefforritunarrammi til að þróa alls kyns vefforrit með PHP.

Í þessari grein munt þú læra hvernig á að setja upp nýjustu útgáfuna af Yii ramma í Ubuntu LTS (langtímastuðningur) útgáfur til að byrja að þróa nútíma PHP vefforrit.

Yii er með eftirfarandi Ubuntu LTS (langtímastuðning) útgáfur:

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

  • Kynjandi tilvik af Ubuntu þjóninum.
  • LEMP stafla með PHP 5.4.0 eða nýrri.
  • Tónskáld – pakkastjóri á forritastigi fyrir PHP.

Á þessari síðu

  • Uppsetning Yii Framework í gegnum Composer í Ubuntu
  • Að keyra Yii með PHP þróunarþjóni
  • Að keyra Yii verkefni í framleiðslu með NGINX HTTP þjóni
  • Virkjaðu HTTPS á Yii forritum með Let's Encrypt

Það eru tvær leiðir til að setja upp Yii, með því að nota Composer pakkastjórann eða með því að setja hann upp úr skjalasafni. Fyrri leiðin er ráðlögð leið, þar sem hún gerir þér kleift að setja upp nýjar viðbætur eða uppfæra Yii með einni skipun.

Ef þú ert ekki með Composer uppsett geturðu sett það upp með því að nota eftirfarandi skipanir, sem síðar setja upp Yii og stjórna ósjálfstæði þess.

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

Þegar þú hefur sett upp tónskáldið skaltu fara inn í möppuna /var/www/html/ sem mun geyma vefforritin þín eða vefsíðuskrár, settu síðan upp Yii pakkann með því að nota tónskáldið (skipta um prófverkefni með nafni þínu vefforritsskrá).

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

Á þessum tímapunkti ertu tilbúinn til að byrja að nota Yii ramma fyrir þróun. Til að keyra PHP þróunarþjóninn, farðu inn í testprojects möppuna (möppuheiti þitt ætti að vera öðruvísi eftir því sem þú tilgreindir í fyrri skipun), ræstu síðan þróunarþjóninn. Sjálfgefið ætti það að keyra á port 8080.

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

Til að keyra þróunarþjóninn á annarri höfn, til dæmis, höfn 5000, notaðu --port fánann eins og sýnt er.

$ php yii serve --port=5000

Opnaðu síðan vafrann þinn og farðu með því að nota eftirfarandi heimilisfang:

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

Til að dreifa og fá aðgang að Yii forriti í framleiðslu þarf HTTP netþjón eins og studdan vefþjónhugbúnað.

Til að fá aðgang að Yii forritinu án þess að slá inn gáttina þína þarftu að búa til nauðsynlega DNS A skrá til að benda léninu þínu á Yii rammaforritaþjóninn þinn.

Fyrir þessa handbók munum við sýna hvernig á að dreifa Yii forriti með NGINX. Svo þú þarft að búa til sýndarhýsil eða stillingarskrá fyrir netþjónsblokk undir /etc/nginx/sites-available/ skránni fyrir forritið þitt svo að NGINX geti þjónað því.

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

Afritaðu og límdu eftirfarandi uppsetningu í hana (skiptu testprojects.me og www.testprojects.me út fyrir lénið þitt). Tilgreindu einnig hvernig NGINX sendir FastCGI beiðnir til PHP-FPM, í þessu dæmi erum við að nota UNIX fals (/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;
    }
}

Vistaðu skrána og lokaðu henni.

Athugaðu síðan setningafræði NGINX stillingar fyrir réttleika, ef það er í lagi, virkjaðu nýja forritið eins og sýnt er:

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

Endurræstu síðan NGINX þjónustuna til að beita nýju breytingunum:

$ sudo systemctl restart nginx

Farðu aftur í vafrann þinn og farðu með lénið þitt.

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

Að lokum þarftu að virkja HTTPS á vefsíðunni þinni. Þú getur annað hvort notað ókeypis Let's Encrypt SSL/TLS vottorð (sem er sjálfvirkt og viðurkennt af öllum nútíma vöfrum) eða fengið vottorð frá viðskipta-CA.

Ef þú ákveður að nota Let's Encrypt vottorð er hægt að setja það sjálfkrafa upp og stilla það með certbot tólinu. Til að setja upp certbot þarftu að setja upp snapd til að setja það upp.

$ sudo snap install --classic certbot

Notaðu síðan certbot til að fá og setja upp/stilla ókeypis SSL/TLS vottorðið þitt til notkunar með NGINX vefþjóni (gefðu upp gildan tölvupóst til endurnýjunar og fylgdu leiðbeiningunum til að ljúka uppsetningunni):

$ sudo certbot --nginx

Farðu nú í vafrann þinn einu sinni enn til að staðfesta að Yii forritið þitt sé nú keyrt á HTTPS (mundu að HTTP ætti sjálfkrafa að vísa til HTTPS).

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

Fyrir frekari upplýsingar eins og að tengja forritið þitt við gagnagrunn, sjá Yii rammaskjölin frá opinberu Yii verkefnisvefsíðunni. Prófaðu það og deildu hugsunum þínum um Yii eða spurðu spurninga í gegnum athugasemdareyðublaðið hér að neðan.