GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Comment déployer automatiquement des applications Laravel avec Deployer sur Ubuntu 16.04

Laravel est un framework d'applications Web PHP open source populaire. Il a une syntaxe expressive et élégante et fournit les outils nécessaires aux applications volumineuses et robustes. Deployer est un outil de déploiement PHP open source modulaire doté de fonctionnalités et d'optimisations permettant de gagner du temps. Il prend en charge le déploiement de nombreux frameworks populaires, notamment Laravel, Symfony, Zend Framework et CodeIgniter. Dans ce tutoriel, nous allons vous montrer comment déployer une application Laravel avec Deployer sur Ubuntu 16.04.

Exigences

  • Serveur Ubuntu 16.04 avec accès root ou sudo.
  • Serveur Git. Vous pouvez soit utiliser votre propre serveur git auto-hébergé, soit n'importe quel service Git populaire tel que Gitlab, Github ou Bitbucket.

Mise en place de l'environnement de développement local

Vous allez déployer votre application Laravel à partir de votre ordinateur local. Vous devez donc d'abord configurer l'environnement de développement local et installer Deployer.

Tout d'abord, si vous n'avez pas encore installé composer sur votre ordinateur local, installez-le avec :

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

Ensuite, créez un nouveau projet Laravel sur votre ordinateur local :

composer create-project --prefer-dist laravel/laravel my-laravel-app

Pour installer Deployer sur votre ordinateur local, exécutez les commandes suivantes dans la console :

curl -LO https://deployer.org/deployer.phar
mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep  

Enfin, connectez-vous au serveur git en ajoutant la clé ssh de votre PC local au serveur git.

Si vous n'avez pas de clés SSH, vous pouvez consulter notre article sur la configuration des clés SSH sur Ubuntu 16.04

Si vous utilisez le service hébergé Git, vous pouvez consulter leur documentation sur la façon d'ajouter une clé SSH à votre compte.

  • Ajouter des clés SSH au compte GitHub
  • Ajouter des clés SSH au compte GitLab
  • Ajouter des clés SSH au compte Bitbucket

Installer et configurer PHP

Maintenant que votre ordinateur de développement local est prêt avant de pouvoir commencer le déploiement, nous devons configurer le serveur en installant tous les services nécessaires.

Pour installer la dernière version stable de PHP version 7 et tous les modules nécessaires, exécutez :

sudo apt update
sudo apt install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-mcrypt php-pear php7.0-curl

Nous devons également installer composer :

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

Installer et configurer Nginx

Installez la dernière version stable de Nginx à partir des dépôts officiels d'Ubuntu :

sudo apt install nginx

Ensuite, créez un nouveau bloc serveur Nginx :

sudo nano /etc/nginx/sites-available/my-laravel-app.com
server {  
    listen 80;
    server_name my-laravel-app.com;
    root /var/www/html/my-laravel-app.com/current/public;

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

}

Activez le bloc serveur en créant un lien symbolique :

sudo ln -s /etc/nginx/sites-available/my-laravel-app.com /etc/nginx/sites-enabled/my-laravel-app.com

Testez la configuration de Nginx et redémarrez nginx :

sudo nginx -t
sudo service nginx restart

Créer une base de données MySQL

Si vous n'avez pas installé MySQL, vous pouvez consulter notre tutoriel sur Comment installer MySQL sur Ubuntu 16.04

Pour créer une base de données pour l'application laravel, exécutez les commandes suivantes :

mysql -u root -p
CREATE DATABASE laravel;
GRANT ALL PRIVILEGES ON laravel.* TO 'laraveluser'@'localhost' IDENTIFIED BY 'your-password';
FLUSH PRIVILEGES;
\q

Créer un utilisateur de déploiement

Le but principal de cet utilisateur est de déployer notre application Laravel en exécutant des commandes sur notre serveur.

Pour créer l'utilisateur, exécutez la commande suivante :

sudo adduser deployer

Nginx et PHP FPM fonctionnent tous deux en tant qu'utilisateur www-data. Les fichiers et répertoires créés par l'utilisateur déployeur doivent être accessibles en écriture par l'utilisateur www.

Exécutez la commande suivante pour ajouter l'utilisateur déployeur au groupe www-data :

sudo usermod -aG www-data deployer

Modifiez la propriété de la racine du document en exécutant :

sudo chown deployer:www-data /var/www/html/my-laravel-app.com

et définir l'ID du groupe d'utilisateurs

sudo chmod g+s /var/www/html/my-laravel-app.com

Avec la commande ci-dessus, tous les nouveaux fichiers et sous-répertoires créés dans `/var/www/html/my-laravel-app.com` hériteront de l'ID de groupe de répertoires.

Ajoutez votre clé SSH publique d'utilisateur local au fichier /home/deployer/.ssh/authorized_keys afin de pouvoir vous connecter au serveur distant depuis votre ordinateur local sans mot de passe en tant qu'utilisateur déployeur et exécuter les commandes de déploiement.

Enfin, vous devez ajouter la clé SSH de l'utilisateur du déployeur à votre serveur git, comme vous l'avez fait avec l'utilisateur de votre ordinateur local.

Utiliser le déployeur

Ouvrez votre terminal informatique local et basculez vers le répertoire du projet laravel.

cd ~/my-laravel-app

Exécutez la commande suivante pour créer un fichier de recette nommé deploy.php .

dep init -t Laravel

Ouvrez le fichier et configurez et définissez les informations d'identification correctes du référentiel et configurez le paramètre d'hôte comme suit :

host('your_remove_server_ip')
    ->user('deployer')
    ->set('deploy_path', '/var/www/html/my-laravel-app.com');

Depuis le répertoire du projet intérieur, vous pouvez maintenant exécuter la commande `dep` pour déployer votre application.

Pour plus d'informations sur la configuration et l'utilisation de Deployer, veuillez visiter leur page de documentation.

Bien sûr, vous n'avez pas besoin de configurer votre serveur distant si vous utilisez l'un de nos serveurs Ubuntu Blazing-Fast, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de créer l'utilisateur déployeur et d'installer et de configurer tous les services nécessaires pour vous . Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.

PS. Si vous avez aimé cet article, sur la façon de déployer automatiquement des applications Laravel avec Deployer sur Ubuntu 16.04, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.


Panels
  1. Comment déployer automatiquement des applications Laravel avec Deployer sur Ubuntu 16.04

  2. Comment installer Joomla avec Nginx sur Ubuntu 18.04

  3. Comment installer Let's Encrypt sur Ubuntu 20.04 avec Apache

  4. Comment activer le protocole HTTPS avec Apache 2 sur Ubuntu 20.04

  5. Comment intégrer Collabora Online avec Nextcloud sur Ubuntu 20.04

Comment installer WordPress 5.x avec Nginx sur Ubuntu 18.04 / Ubuntu 16.04

Comment installer ElastAlert avec Elasticsearch sur Ubuntu

Comment installer NextCloud sur Ubuntu 20.04 avec Apache

Comment installer WordPress avec Nginx sur Ubuntu

Comment installer Lighttpd avec PHP dans Ubuntu 20.04

Comment déployer l'application Laravel avec Nginx sur Ubuntu ?