Ricerca nel sito web

Come installare Yii PHP Framework su Ubuntu


Yii (pronunciato Yee o [ji:]) è un software gratuito e open source, veloce, ad alte prestazioni, sicuro, flessibile ma pragmatico, ed efficiente framework di programmazione web generico per lo sviluppo di tutti i tipi di applicazioni web utilizzando PHP.

In questo articolo imparerai come installare l'ultima versione del framework Yii nelle versioni Ubuntu LTS (supporto a lungo termine) per iniziare a sviluppare moderne applicazioni Web PHP.

Supporto della piattaforma

Yii contiene le seguenti versioni di Ubuntu LTS (supporto a lungo termine):

  • Ubuntu 20.04 LTS (“Focale”)
  • Ubuntu 18.04 LTS (“Bionic”)
  • Ubuntu 16.04 LTS (“Xenial”)

Requisiti

  • Un'istanza in esecuzione del server Ubuntu.
  • Uno stack LEMP con PHP 5.4.0 o successivo.
  • Un compositore: un gestore di pacchetti a livello di applicazione per PHP.

Su questa pagina

  • Installazione di Yii Framework tramite Composer in Ubuntu
  • Esecuzione di Yii utilizzando il server di sviluppo PHP
  • Esecuzione del progetto Yii in produzione utilizzando un server HTTP NGINX
  • Abilita HTTPS sulle applicazioni Yii utilizzando Let's Encrypt

Esistono due modi per installare Yii, utilizzando il gestore pacchetti Composer o installandolo da un file di archivio. Il primo è il metodo consigliato, poiché ti consente di installare nuove estensioni o aggiornare Yii con un unico comando.

Installazione di Yii Framework tramite Composer in Ubuntu

Se non hai Composer installato, puoi installarlo utilizzando i seguenti comandi, che successivamente installeranno Yii e gestiranno le sue dipendenze.

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

Una volta installato il compositore, spostati nella directory /var/www/html/ che memorizzerà le tue applicazioni web o i file dei siti web, quindi installa il pacchetto Yii utilizzando il comando composer (sostituisci testproject con il nome della directory della tua applicazione web).

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

Esecuzione di Yii utilizzando il server di sviluppo PHP

A questo punto sei pronto per iniziare a utilizzare il framework Yii per lo sviluppo. Per eseguire il server di sviluppo PHP, spostati nella directory testprojects (il nome della tua directory dovrebbe essere diverso a seconda di ciò che hai specificato nel comando precedente), quindi avvia il server di sviluppo. Per impostazione predefinita, dovrebbe essere eseguito sulla porta 8080.

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

Per eseguire il server di sviluppo su un'altra porta, ad esempio la porta 5000, utilizza il flag --port come mostrato.

php yii serve --port=5000

Apri quindi il tuo browser web e naviga utilizzando il seguente indirizzo:

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

Esecuzione del progetto Yii in produzione utilizzando un server HTTP NGINX

Per distribuire e accedere a un'applicazione Yii in produzione, è necessario un server HTTP come NGINX, Apache/HTTPD o qualsiasi altro software server Web supportato.

Per accedere all'applicazione Yii senza digitare la porta, devi creare il record DNS A richiesto per indirizzare il tuo dominio al server dell'applicazione framework Yii .

Per questa guida, mostreremo come distribuire un'applicazione Yii con NGINX. Pertanto, devi creare un host virtuale o un file di configurazione del blocco server nella directory /etc/nginx/sites-available/ per la tua applicazione in modo che NGINX possa servirla.

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

Copia e incolla la seguente configurazione al suo interno (sostituisci testprojects.me e www.testprojects.me con il tuo nome di dominio). Specificare anche il mezzo con cui NGINX trasmetterà le richieste FastCGI a PHP-FPM, in questo esempio stiamo utilizzando un socket 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;
    }
}

Salva il file e chiudilo.

Quindi controlla la correttezza della sintassi di configurazione di NGINX, se è Ok, abilita la nuova applicazione come mostrato:

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

Riavvia quindi il servizio NGINX per applicare le nuove modifiche:

sudo systemctl restart nginx

Torna al tuo browser web e naviga con il tuo nome di dominio.

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

Abilita HTTPS sulle applicazioni Yii utilizzando Let's Encrypt

Infine, devi abilitare HTTPS sul tuo sito web. Puoi utilizzare un certificato Let's Encrypt SSL/TLS gratuito (che è automatizzato e riconosciuto da tutti i browser Web moderni) o acquisire un certificato da una CA commerciale.

Se decidi di utilizzare un certificato Let's Encrypt, può essere installato e configurato automaticamente utilizzando lo strumento certbot. Per installare certbot, devi installare snapd per installarlo.

sudo snap install --classic certbot

Quindi utilizza certbot per ottenere e installare/configurare il tuo certificato SSL/TLS gratuito da utilizzare con il server web NGINX (fornisci un'e-mail valida per il rinnovo e segui le istruzioni per completare l'installazione):

sudo certbot --nginx

Ora vai al tuo browser web ancora una volta per confermare che la tua applicazione Yii è ora in esecuzione su HTTPS (ricorda che HTTP dovrebbe reindirizzare automaticamente a HTTPS).

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

Per ulteriori informazioni, come la connessione della tua applicazione a un database, consulta la documentazione del framework Yii dal sito web ufficiale del progetto Yii. Provalo e condividi le tue opinioni su Yii o fai qualsiasi domanda tramite il modulo di feedback qui sotto.