Hvordan installere Yii PHP Framework på Ubuntu


Yii (uttales Yee eller [ji:]) er en gratis og åpen kildekode, rask, høy ytelse, sikker, fleksibel, men pragmatisk og effektiv generisk nettprogrammeringsramme for utvikling av alle typer nettapplikasjoner som bruker PHP.

I denne artikkelen vil du lære hvordan du installerer den nyeste versjonen av Yii-rammeverket i Ubuntu LTS (langsiktig støtte)-utgivelser for å begynne å utvikle moderne PHP-webapplikasjoner.

Yii har følgende Ubuntu LTS (langsiktig støtte) utgivelser:

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

  • En kjørende forekomst av Ubuntu-serveren.
  • En LEMP-stabel med PHP 5.4.0 eller nyere.
  • A Composer – en pakkebehandling på applikasjonsnivå for PHP.

På denne siden

  • Installere Yii Framework via Composer i Ubuntu
  • Kjøre Yii ved hjelp av PHP Development Server
  • Kjøre Yii-prosjekt i produksjon ved hjelp av en NGINX HTTP-server
  • Aktiver HTTPS på Yii-applikasjoner ved å bruke Let's Encrypt

Det er to måter å installere Yii på, ved å bruke Composer-pakkebehandlingen eller ved å installere den fra en arkivfil. Førstnevnte er den anbefalte måten, siden den lar deg installere nye utvidelser eller oppdatere Yii med en enkelt kommando.

Hvis du ikke har Composer installert, kan du installere den ved å bruke følgende kommandoer, som senere vil installere Yii og administrere dens avhengigheter.

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

Når du har installert composer, gå inn i katalogen /var/www/html/ som vil lagre webapplikasjonene eller nettstedsfilene dine, og installer deretter Yii-pakken ved å bruke komponisten (erstatt testprosjektet med navnet på webapplikasjonens katalog).

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

På dette tidspunktet er du klar til å begynne å bruke Yii-rammeverket for utvikling. For å kjøre PHP-utviklingsserveren, gå inn i testprojects-katalogen (katalognavnet ditt bør være forskjellig avhengig av hva du spesifiserte i forrige kommando), og start deretter utviklingsserveren. Som standard skal den kjøre på port 8080.

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

For å kjøre utviklingsserveren på en annen port, for eksempel port 5000, bruk --port-flagget som vist.

$ php yii serve --port=5000

Åpne deretter nettleseren og naviger med følgende adresse:

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

For å distribuere og få tilgang til en Yii-applikasjon i produksjon, kreves en HTTP-server som støttet webserverprogramvare.

For å få tilgang til Yii-applikasjonen uten å skrive inn porten, må du opprette den nødvendige DNS A-posten for å peke domenet ditt til Yii-rammeapplikasjonsserveren.

For denne veiledningen vil vi vise hvordan du distribuerer en Yii-applikasjon med NGINX. Så du må lage en konfigurasjonsfil for virtuell vert eller serverblokk under /etc/nginx/sites-available/-katalogen for applikasjonen din slik at NGINX kan betjene den.

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

Kopier og lim inn følgende konfigurasjon i den (erstatt testprojects.me og www.testprojects.me med ditt domenenavn). Spesifiser også måten NGINX vil sende FastCGI-forespørsler til PHP-FPM, i dette eksemplet bruker vi en UNIX-socket (/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;
    }
}

Lagre filen og lukk den.

Sjekk deretter NGINX-konfigurasjonssyntaksen for korrekthet, hvis den er OK, aktiver den nye applikasjonen som vist:

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

Start deretter NGINX-tjenesten på nytt for å bruke de nye endringene:

$ sudo systemctl restart nginx

Gå tilbake til nettleseren din og naviger med domenenavnet ditt.

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

Til slutt må du aktivere HTTPS på nettstedet ditt. Du kan enten bruke et gratis Let's Encrypt SSL/TLS-sertifikat (som er automatisert og gjenkjent av alle moderne nettlesere) eller anskaffe et sertifikat fra en kommersiell CA.

Hvis du bestemmer deg for å bruke et Let's Encrypt-sertifikat, kan det automatisk installeres og konfigureres ved hjelp av certbot-verktøyet. For å installere certbot, må du installere snapd for å installere den.

$ sudo snap install --classic certbot

Bruk deretter certbot til å skaffe og installere/konfigurere ditt gratis SSL/TLS-sertifikat for bruk med NGINX webserver (gi en gyldig e-post for fornyelse og følg instruksjonene for å fullføre installasjonen):

$ sudo certbot --nginx

Gå nå til nettleseren en gang til for å bekrefte at Yii-applikasjonen din nå kjører på HTTPS (husk at HTTP automatisk skal omdirigere til HTTPS).

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

For mer informasjon som å koble applikasjonen din til en database, se Yii-rammedokumentasjonen fra det offisielle Yii-prosjektets nettsted. Prøv det og del tankene dine om Yii eller still spørsmål via tilbakemeldingsskjemaet nedenfor.