Sådan installeres Yii PHP Framework på Ubuntu


Yii (udtales Yee eller [ji:]) er en gratis og open source, hurtig, høj ydeevne, sikker, fleksibel, men alligevel pragmatisk og effektiv generisk webprogrammeringsramme til udvikling af alle slags webapplikationer ved hjælp af PHP.

I denne artikel lærer du, hvordan du installerer den nyeste version af Yii-rammen i Ubuntu LTS (langvarig support) -udgivelser for at begynde at udvikle moderne PHP-webapplikationer.

Yii har følgende Ubuntu LTS-udgivelser (langvarig support):

  • Ubuntu 20.04 LTS (“Focal”)
  • Ubuntu 18.04 LTS (“Bionic”)
  • Ubuntu 16.04 LTS (“Xenial”)
  • A running instance of the Ubuntu server.
  • A LEMP stack with PHP 5.4.0 or above.
  • A Composer – an application-level package manager for the PHP.

På denne side

  • Installing Yii Framework via Composer in Ubuntu
  • Running Yii Using PHP Development Server
  • Running Yii Project in Production Using an NGINX HTTP Server
  • Enable HTTPS on Yii Applications Using Let’s Encrypt

Der er to måder at installere Yii ved hjælp af Composer-pakkehåndteringen eller ved at installere den fra en arkivfil. Førstnævnte er den anbefalede måde, da det giver dig mulighed for at installere nye udvidelser eller opdatere Yii med en enkelt kommando.

Hvis du ikke har Composer installeret, kan du installere det ved hjælp af følgende kommandoer, som senere installerer Yii og administrerer dens afhængigheder.

$ 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 installeret komponisten, skal du flytte til biblioteket /var/www/html/, der gemmer dine webapplikationer eller webstedsfiler, og derefter installere Yii-pakken ved hjælp af komponisten (udskift testprojekt med navnet på din webapplikations bibliotek).

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

På dette tidspunkt er du klar til at begynde at bruge Yii-rammen til udvikling. For at køre PHP-udviklingsserveren skal du flytte til testprojects-biblioteket (dit katalognavn skal være forskelligt afhængigt af hvad du har angivet i den forrige kommando) og derefter starte udviklingsserveren. Som standard skal den køre på port 8080.

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

For at køre udviklingsserveren på en anden port, for eksempel port 5000, skal du bruge flagget --port som vist.

$ php yii serve --port=5000

Åbn derefter din webbrowser, og naviger ved hjælp af følgende adresse:

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

For at implementere og få adgang til et Yii-program i produktionen kræves der en HTTP-server såsom NGINX, Apache/HTTPD eller anden understøttet webserver-software.

For at få adgang til Yii-applikationen uden at skrive din port skal du oprette den krævede DNS A -post for at pege dit domæne til din Yii framework-applikationsserver.

I denne vejledning viser vi, hvordan du implementerer en Yii-applikation med NGINX. Så du skal oprette en virtuel vært eller en serverblokkonfigurationsfil under/etc/nginx/sites-available/biblioteket til din applikation, så NGINX kan tjene den.

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

Kopier og indsæt følgende konfiguration i den (udskift testprojects.me og www.testprojects.me med dit domænenavn). Angiv også de midler, NGINX vil overføre FastCGI-anmodninger til PHP-FPM, i dette eksempel bruger vi et UNIX-stik (/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;
    }
}

Gem filen, og luk den.

Kontroller derefter NGINX-konfigurationens syntaks for korrekthed, hvis det er ok, skal du aktivere den nye applikation som vist:

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

Genstart derefter NGINX-tjenesten for at anvende de nye ændringer:

$ sudo systemctl restart nginx

Gå tilbage til din webbrowser og naviger med dit domænenavn.

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

Endelig skal du aktivere HTTPS på dit websted. Du kan enten bruge et gratis Lad os kryptere SSL/TLS-certifikat (som er automatiseret og anerkendt af alle moderne webbrowsere) eller erhverve et certifikat fra en kommerciel CA.

Hvis du beslutter at bruge et Lad os kryptere certifikat, kan det automatisk installeres og konfigureres ved hjælp af certbot-værktøjet. For at installere certbot skal du installere snapd for at installere det.

$ sudo snap install --classic certbot

Brug derefter certbot til at hente og installere/konfigurere dit gratis SSL/TLS-certifikat til brug med NGINX-webserveren (angiv en gyldig e-mail til fornyelse og følg vejledningen for at fuldføre installationen):

$ sudo certbot --nginx

Gå nu til din webbrowser igen for at bekræfte, at din Yii-applikation nu kører på HTTPS (husk HTTP skal automatisk omdirigere til HTTPS).

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

For mere information såsom at forbinde din applikation til en database, se Yii-rammedokumentationen fra det officielle Yii-projektwebsted. Prøv det og del dine tanker om Yii, eller stil spørgsmål ved hjælp af feedbackformularen nedenfor.