Recherche de site Web

Comment installer le framework PHP Yii sur Ubuntu


Yii (prononcé Yee ou [ji:]) est un logiciel gratuit et open source, rapide, performant, sécurisé, flexible mais pragmatique, et un cadre de programmation Web générique efficace pour développer toutes sortes d'applications Web à l'aide de PHP.

Dans cet article, vous apprendrez comment installer la dernière version du framework Yii dans les versions Ubuntu LTS (support à long terme) pour commencer à développer des applications Web PHP modernes.

Prise en charge de la plateforme

Yii contient les versions Ubuntu LTS (support à long terme) suivantes :

  • Ubuntu 20.04 LTS (« Focal »)
  • Ubuntu 18.04 LTS (« Bionique »)
  • Ubuntu 16.04 LTS (« Xenial »)

Exigences

  • Une instance en cours d'exécution du serveur Ubuntu.
  • Une pile LEMP avec PHP 5.4.0 ou supérieur.
  • A Composer – un gestionnaire de packages au niveau de l'application pour PHP.

Sur cette page

  • Installation de Yii Framework via Composer dans Ubuntu
  • Exécuter Yii à l'aide du serveur de développement PHP
  • Exécution du projet Yii en production à l'aide d'un serveur HTTP NGINX
  • Activez HTTPS sur les applications Yii à l'aide de Let's Encrypt

Il existe deux manières d'installer Yii, en utilisant le gestionnaire de packages Composer ou en l'installant à partir d'un fichier d'archive. La première est la méthode recommandée, car elle vous permet d'installer de nouvelles extensions ou de mettre à jour Yii par une seule commande.

Installation de Yii Framework via Composer dans Ubuntu

Si Composer n'est pas installé, vous pouvez l'installer à l'aide des commandes suivantes, qui installeront ensuite Yii et géreront ses dépendances.

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

Une fois composer installé, déplacez-vous dans le répertoire /var/www/html/ qui stockera vos applications Web ou les fichiers de vos sites Web, puis installez le package Yii à l'aide du composer (remplacez testproject par le nom du répertoire de votre application Web).

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

Exécuter Yii à l'aide du serveur de développement PHP

À ce stade, vous êtes prêt à commencer à utiliser le framework Yii pour le développement. Pour exécuter le serveur de développement PHP, accédez au répertoire testprojects (le nom de votre répertoire doit être différent selon ce que vous avez spécifié dans la commande précédente), puis lancez le serveur de développement. Par défaut, il doit s'exécuter sur le port 8080.

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

Pour exécuter le serveur de développement sur un autre port, par exemple le port 5000, utilisez l'indicateur --port comme indiqué.

php yii serve --port=5000

Ouvrez ensuite votre navigateur Web et naviguez en utilisant l'adresse suivante :

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

Exécution du projet Yii en production à l'aide d'un serveur HTTP NGINX

Pour déployer et accéder à une application Yii en production, il faut un serveur HTTP tel que NGINX, Apache/HTTPD ou tout autre logiciel de serveur Web pris en charge.

Pour accéder à l'application Yii sans saisir votre port, vous devez créer l'enregistrement DNS A requis pour pointer votre domaine vers votre serveur d'applications framework Yii. .

Pour ce guide, nous montrerons comment déployer une application Yii avec NGINX. Vous devez donc créer un fichier de configuration d'hôte virtuel ou de bloc de serveur dans le répertoire /etc/nginx/sites-available/ pour votre application afin que NGINX puisse la servir.

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

Copiez et collez-y la configuration suivante (remplacez testprojects.me et www.testprojects.me par votre nom de domaine). Spécifiez également les moyens par lesquels NGINX transmettra les requêtes FastCGI à PHP-FPM. Dans cet exemple, nous utilisons 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;
    }
}

Enregistrez le fichier et fermez-le.

Vérifiez ensuite l'exactitude de la syntaxe de configuration NGINX. Si elle est correcte, activez la nouvelle application comme indiqué :

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

Redémarrez ensuite le service NGINX pour appliquer les nouvelles modifications :

sudo systemctl restart nginx

Retournez à votre navigateur Web et naviguez avec votre nom de domaine.

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

Activez HTTPS sur les applications Yii à l'aide de Let's Encrypt

Enfin, vous devez activer le HTTPS sur votre site Web. Vous pouvez soit utiliser un certificat SSL/TLS Let's Encrypt gratuit (qui est automatisé et reconnu par tous les navigateurs Web modernes), soit acquérir un certificat auprès d'une autorité de certification commerciale.

Si vous décidez d'utiliser un certificat Let's Encrypt, il peut être automatiquement installé et configuré à l'aide de l'outil certbot. Pour installer certbot, vous devez installer snapd pour l'installer.

sudo snap install --classic certbot

Utilisez ensuite certbot pour obtenir et installer/configurer votre certificat SSL/TLS gratuit à utiliser avec le serveur Web NGINX (fournissez un e-mail valide pour le renouvellement et suivez les instructions pour terminer l'installation) :

sudo certbot --nginx

Accédez à nouveau à votre navigateur Web pour confirmer que votre application Yii s'exécute désormais sur HTTPS (rappelez-vous que HTTP devrait automatiquement rediriger vers HTTPS).

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

Pour plus d'informations, telles que la connexion de votre application à une base de données, consultez la documentation du framework Yii sur le site Web officiel du projet Yii. Essayez-le et partagez vos impressions sur Yii ou posez vos questions via le formulaire de commentaires ci-dessous.