Com instal·lar Yii PHP Framework a Ubuntu


Yii (pronunciat Yee o [ji:]) és un marc de programació web genèric gratuït i de codi obert, ràpid, d'alt rendiment, segur, flexible però pragmàtic i eficient per desenvolupar tot tipus d'aplicacions web utilitzant PHP.

En aquest article, aprendràs a instal·lar la darrera versió del marc Yii a les versions d'Ubuntu LTS (suport a llarg termini) per començar a desenvolupar aplicacions web PHP modernes.

Yii té les següents versions d'Ubuntu LTS (suport a llarg termini):

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

  • Una instància en execució del servidor Ubuntu.
  • Una pila LEMP amb PHP 5.4.0 o superior.
  • A Composer: un gestor de paquets a nivell d'aplicació per a PHP.

En aquesta pàgina

  • Instal·lació de Yii Framework mitjançant Composer a Ubuntu
  • Executant Yii amb el servidor de desenvolupament PHP
  • Execució del projecte Yii en producció mitjançant un servidor HTTP NGINX
  • Activeu HTTPS a les aplicacions Yii mitjançant Let's Encrypt

Hi ha dues maneres d'instal·lar Yii, utilitzant el gestor de paquets de Composer o instal·lant-lo des d'un fitxer d'arxiu. La primera és la forma recomanada, ja que us permet instal·lar noves extensions o actualitzar Yii amb una sola ordre.

Si no teniu Composer instal·lat, podeu instal·lar-lo mitjançant les ordres següents, que més tard instal·laran Yii i gestionaran les seves dependències.

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

Un cop hàgiu instal·lat el compositor, aneu al directori /var/www/html/ que emmagatzemarà les vostres aplicacions web o fitxers de llocs web, i després instal·leu el paquet Yii mitjançant el compositor (substituïu el projecte de prova pel nom del vostre directori de l'aplicació web).

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

En aquest punt, esteu preparat per començar a utilitzar el marc Yii per al desenvolupament. Per executar el servidor de desenvolupament PHP, aneu al directori testprojects (el nom del vostre directori hauria de ser diferent en funció del que heu especificat a l'ordre anterior) i, a continuació, inicieu el servidor de desenvolupament. Per defecte, hauria d'executar-se al port 8080.

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

Per executar el servidor de desenvolupament en un altre port, per exemple, el port 5000, utilitzeu el senyalador --port tal com es mostra.

$ php yii serve --port=5000

A continuació, obriu el vostre navegador web i navegueu amb l'adreça següent:

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

Per implementar i accedir a una aplicació Yii en producció, cal un servidor HTTP, com ara un programari de servidor web compatible.

Per accedir a l'aplicació Yii sense escriure el vostre port, heu de crear el registre A DNS necessari per apuntar el vostre domini al servidor d'aplicacions del marc Yii.

Per a aquesta guia, mostrarem com implementar una aplicació Yii amb NGINX. Per tant, heu de crear un fitxer de configuració de bloqueig de servidor o host virtual al directori /etc/nginx/sites-available/ per a la vostra aplicació perquè NGINX pugui servir-lo.

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

Copieu i enganxeu-hi la configuració següent (substituïu testprojects.me i www.testprojects.me pel vostre nom de domini). Especifiqueu també els mitjans que NGINX passarà les sol·licituds FastCGI a PHP-FPM, en aquest exemple, estem utilitzant un sòcol 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;
    }
}

Deseu el fitxer i tanqueu-lo.

A continuació, comproveu que la sintaxi de configuració de NGINX sigui correcta, si està bé, activeu la nova aplicació tal com es mostra:

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

A continuació, reinicieu el servei NGINX per aplicar els nous canvis:

$ sudo systemctl restart nginx

Torneu al vostre navegador web i navegueu amb el vostre nom de domini.

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

Finalment, heu d'activar HTTPS al vostre lloc web. Podeu utilitzar un certificat gratuït de Let's Encrypt SSL/TLS (que està automatitzat i reconegut per tots els navegadors web moderns) o adquirir un certificat d'una CA comercial.

Si decidiu utilitzar un certificat Let's Encrypt, es pot instal·lar i configurar automàticament mitjançant l'eina certbot. Per instal·lar certbot, heu d'instal·lar snapd per instal·lar-lo.

$ sudo snap install --classic certbot

A continuació, utilitzeu certbot per obtenir i instal·lar/configurar el vostre certificat SSL/TLS gratuït per utilitzar-lo amb el servidor web NGINX (proporcioneu un correu electrònic vàlid per a la renovació i seguiu les instruccions per completar la instal·lació):

$ sudo certbot --nginx

Ara aneu al vostre navegador web una vegada més per confirmar que la vostra aplicació Yii s'està executant amb HTTPS (recordeu que HTTP hauria de redirigir automàticament a HTTPS).

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

Per obtenir més informació, com ara connectar la vostra aplicació a una base de dades, consulteu la documentació del marc Yii del lloc web oficial del projecte Yii. Prova-ho i comparteix els teus pensaments sobre Yii o fes qualsevol pregunta mitjançant el formulari de comentaris que hi ha a continuació.