Zoeken op website

Hoe Yii PHP Framework op Ubuntu te installeren


Yii (uitgesproken als Yee of [ji:]) is een gratis en open source, snel, krachtig, veilig, flexibel en toch pragmatisch, en efficiënt generiek webprogrammeerframework voor het ontwikkelen van allerlei soorten webapplicaties met behulp van PHP.

In dit artikel leert u hoe u de nieuwste versie van het Yii-framework in Ubuntu LTS-releases (langdurige ondersteuning) kunt installeren om te beginnen met het ontwikkelen van moderne PHP-webapplicaties.

Platformondersteuning

Yii bevat de volgende Ubuntu LTS-releases (langdurige ondersteuning):

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

Vereisten

  • Een actief exemplaar van de Ubuntu-server.
  • Een LEMP-stack met PHP 5.4.0 of hoger.
  • A Composer – een pakketbeheerder op applicatieniveau voor PHP.

Op deze pagina

  • Yii Framework installeren via Composer in Ubuntu
  • Yii uitvoeren met behulp van PHP Development Server
  • Yii Project in productie uitvoeren met behulp van een NGINX HTTP-server
  • Schakel HTTPS in op Yii-applicaties met Let's Encrypt

Er zijn twee manieren om Yii te installeren: met behulp van de Composer pakketbeheerder of door het te installeren vanuit een archiefbestand. De eerste is de aanbevolen manier, omdat je hiermee met één enkele opdracht nieuwe extensies kunt installeren of Yii kunt bijwerken.

Yii Framework installeren via Composer in Ubuntu

Als je Composer niet hebt geïnstalleerd, kun je het installeren met de volgende opdrachten, waarmee je later Yii installeert en de afhankelijkheden ervan beheert.

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

Zodra je composer hebt geïnstalleerd, ga je naar de map /var/www/html/ waarin je webapplicaties of websitebestanden worden opgeslagen en installeer je vervolgens het Yii pakket met de composer (vervang testproject door de naam van de directory van uw webapplicatie).

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

Yii uitvoeren met behulp van PHP Development Server

Op dit punt bent u klaar om het Yii raamwerk voor ontwikkeling te gaan gebruiken. Om de PHP-ontwikkelserver te starten, gaat u naar de map testprojects (uw mapnaam moet anders zijn, afhankelijk van wat u in de vorige opdracht hebt opgegeven) en start vervolgens de ontwikkelingsserver. Standaard zou het moeten werken op poort 8080.

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

Om de ontwikkelingsserver op een andere poort te laten draaien, bijvoorbeeld poort 5000, gebruikt u de vlag --port zoals weergegeven.

php yii serve --port=5000

Open vervolgens uw webbrowser en navigeer met behulp van het volgende adres:

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

Yii Project in productie uitvoeren met behulp van een NGINX HTTP-server

Om een Yii applicatie in productie te implementeren en er toegang toe te krijgen, is een HTTP-server zoals NGINX, Apache/HTTPD of andere ondersteunde webserversoftware vereist.

Om toegang te krijgen tot de Yii-applicatie zonder uw poort te typen, moet u het vereiste DNS A-record aanmaken om uw domein naar uw Yii-framework-applicatieserver te verwijzen .

Voor deze handleiding laten we zien hoe u een Yii applicatie implementeert met NGINX. U moet dus een configuratiebestand voor een virtuele host of een serverblok maken in de map /etc/nginx/sites-available/ voor uw applicatie, zodat NGINX deze kan bedienen.

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

Kopieer en plak de volgende configuratie erin (vervang testprojects.me en www.testprojects.me door uw domeinnaam). Specificeer ook de manier waarop NGINX FastCGI verzoeken doorgeeft aan PHP-FPM. In dit voorbeeld gebruiken we een 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;
    }
}

Sla het bestand op en sluit het.

Controleer vervolgens de configuratiesyntaxis van NGINX op juistheid. Als deze in orde is, schakelt u de nieuwe applicatie in zoals weergegeven:

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

Start vervolgens de NGINX-service opnieuw om de nieuwe wijzigingen toe te passen:

sudo systemctl restart nginx

Ga terug naar uw webbrowser en navigeer met uw domeinnaam.

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

Schakel HTTPS in op Yii-applicaties met Let's Encrypt

Ten slotte moet u HTTPS inschakelen op uw website. U kunt een gratis Let’s Encrypt SSL/TLS-certificaat gebruiken (dat geautomatiseerd is en door alle moderne webbrowsers wordt herkend) of een certificaat aanschaffen bij een commerciële CA.

Als u besluit een Let’s Encrypt-certificaat te gebruiken, kan dit automatisch worden geïnstalleerd en geconfigureerd met behulp van de certbot-tool. Om certbot te installeren, moet je snapd installeren.

sudo snap install --classic certbot

Gebruik vervolgens certbot om uw gratis SSL/TLS-certificaat te verkrijgen en te installeren/configureren voor gebruik met de NGINX-webserver (geef een geldig e-mailadres op voor verlenging en volg de aanwijzingen om de installatie te voltooien):

sudo certbot --nginx

Ga nu nogmaals naar uw webbrowser om te bevestigen dat uw Yii-applicatie nu op HTTPS draait (onthoud dat HTTP automatisch moet worden omgeleid naar >HTTPS).

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

Voor meer informatie, zoals het verbinden van uw applicatie met een database, raadpleegt u de Yii-frameworkdocumentatie op de officiële Yii-projectwebsite. Probeer het eens en deel uw mening over Yii of stel vragen via het onderstaande feedbackformulier.