Déploiement facile de Laravel sur Ubuntu : guide du débutant avec LEMP Stack

Mary-Kate Olsen
Libérer: 2024-09-20 06:55:32
original
480 Les gens l'ont consulté

Easy Laravel Deployment on Ubuntu: A Beginner

Déployer une application Laravel sur Ubuntu avec la pile LEMP (Linux, Nginx, MySQL, PHP) peut sembler intimidant, mais la décomposer étape par étape le rend gérable. Ce guide vous guidera tout au long du processus depuis la configuration du serveur jusqu'au déploiement d'une application Laravel.

Conditions préalables :

  • Vous devez disposer d'un serveur Ubuntu (local ou cloud, par exemple AWS, DigitalOcean).
  • Connaissance de base du terminal.
  • Un nom de domaine (facultatif mais recommandé).

Partie 1 : Configuration de la pile LEMP

Étape 1 : Mettre à jour le système

Commencez par vous assurer que votre serveur est à jour.

sudo apt update && sudo apt upgrade -y
Copier après la connexion

Étape 2 : Installer Nginx

Nginx servira votre application.

sudo apt install nginx -y
Copier après la connexion

Une fois installé, vous pouvez démarrer et activer Nginx pour qu'il s'exécute au démarrage :

sudo systemctl start nginx
sudo systemctl enable nginx
Copier après la connexion

Vous pouvez vérifier que Nginx est en cours d'exécution en visitant l'adresse IP de votre serveur dans un navigateur.

Étape 3 : Installer MySQL

Ensuite, nous installerons le serveur de base de données MySQL.

sudo apt install mysql-server -y
Copier après la connexion

Sécuriser l'installation de MySQL :

sudo mysql_secure_installation
Copier après la connexion

Cela vous demandera de configurer un mot de passe root et de supprimer les valeurs par défaut non sécurisées.

Étape 4 : Installer PHP

Laravel nécessite PHP, alors installons-le avec quelques extensions nécessaires :

sudo apt install php-fpm php-mysql php-cli php-xml php-mbstring php-curl php-zip -y
Copier après la connexion

Vérifiez l'installation de PHP :

php -v
Copier après la connexion

Vous devriez voir quelque chose comme :

PHP 7.x.x (cli) (built: ...)
Copier après la connexion

Partie 2 : Configuration de MySQL pour Laravel

Étape 1 : Connectez-vous à MySQL

Connectez-vous à la console MySQL en tant qu'utilisateur root :

sudo mysql
Copier après la connexion

Étape 2 : Créer une base de données

Créez une nouvelle base de données et un nouvel utilisateur pour l'application Laravel :

CREATE DATABASE laravel_app;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Copier après la connexion

Étape 3 : tester la base de données

Assurez-vous que le nouvel utilisateur de la base de données peut se connecter :

mysql -u laravel_user -p
Copier après la connexion

Vous serez invité à saisir le mot de passe, puis saisissez :

SHOW DATABASES;
Copier après la connexion

Vous devriez voir laravel_app dans la liste.


Partie 3 : Installer Laravel

Étape 1 : Installer Composer

Laravel utilise Composer comme gestionnaire de dépendances. Installer Composer :

sudo apt install composer -y
Copier après la connexion

Étape 2 : Créer un projet Laravel

Accédez au répertoire dans lequel vous souhaitez installer Laravel (par exemple, /var/www/) :

cd /var/www/
composer create-project --prefer-dist laravel/laravel laravel_app
Copier après la connexion

Étape 3 : Définir les autorisations du répertoire

Laravel nécessite que certains répertoires soient accessibles en écriture par le serveur Web :

sudo chown -R www-data:www-data /var/www/laravel_app
sudo chmod -R 775 /var/www/laravel_app/storage
sudo chmod -R 775 /var/www/laravel_app/bootstrap/cache
Copier après la connexion

Étape 4 : configurer le fichier .env

Dans la racine du projet Laravel, ouvrez le fichier .env et configurez les paramètres de la base de données :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_app
DB_USERNAME=laravel_user
DB_PASSWORD=strong_password
Copier après la connexion

Partie 4 : Configuration de Nginx pour Laravel

Étape 1 : Créer un nouveau bloc de serveur Nginx

Nous allons créer un fichier de configuration Nginx pour le projet Laravel.

sudo nano /etc/nginx/sites-available/laravel_app
Copier après la connexion

Ajoutez la configuration suivante au fichier :

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/laravel_app/public;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.x-fpm.sock; # Change this to the correct PHP version.
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}
Copier après la connexion

Remplacez your_domain_or_ip par votre nom de domaine réel ou l'adresse IP de votre serveur.

Étape 2 : Activer la configuration Nginx

Activez la nouvelle configuration Nginx en créant un lien symbolique vers les sites activés :

sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/
Copier après la connexion

Étape 3 : tester et recharger Nginx

Testez la configuration de Nginx pour vous assurer qu'il n'y a pas d'erreurs de syntaxe :

sudo nginx -t
Copier après la connexion

Si tout va bien, redémarrez Nginx :

sudo systemctl reload nginx
Copier après la connexion

Partie 5 : étapes finales

Étape 1 : Exécuter les migrations Laravel

Exécutez les migrations Laravel pour configurer la base de données :

cd /var/www/laravel_app
php artisan migrate
Copier après la connexion

Étape 2 : Accédez à l'application

Vous devriez maintenant pouvoir accéder à l'application Laravel en accédant à l'adresse IP ou au domaine de votre serveur dans le navigateur. Vous verrez la page d'accueil par défaut de Laravel.

Étape 3 : Activer HTTPS (facultatif mais recommandé)

Si vous possédez un domaine, sécurisez votre site avec Let's Encrypt :

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain
Copier après la connexion

Suivez les instructions pour installer un certificat SSL. Certbot configurera automatiquement Nginx pour rediriger le trafic HTTP vers HTTPS.


Partie 6 : Facultatif : Configuration de la file d'attente et du planificateur Laravel

File d'attente Laravel :

Les files d'attente gèrent des tâches telles que l'envoi d'e-mails ou le traitement de tâches en arrière-plan.

  1. Configurez un pilote de file d'attente (par exemple, Redis ou base de données).
  2. Exécutez le gestionnaire de file d'attente Laravel :
   php artisan queue:work
Copier après la connexion

Planificateur Laravel :

Utilisez la fonctionnalité de planification de tâches de Laravel pour des tâches telles que vider les caches, envoyer des e-mails quotidiens, etc.

  1. Ajoutez l'entrée cron Laravel à votre crontab :
   sudo crontab -e
Copier après la connexion

Ajoutez la ligne suivante :

   * * * * * php /var/www/laravel_app/artisan schedule:run >> /dev/null 2>&1
Copier après la connexion

Conclusion:

You’ve successfully deployed a Laravel application on an Ubuntu server using the LEMP stack. From here, you can continue to develop your application, secure it, and monitor it for performance.

If you encounter any issues, check the Nginx error logs at /var/log/nginx/error.log or Laravel logs at /var/www/laravel_app/storage/logs/laravel.log.

With these steps, you've completed a full hands-on Laravel deployment!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!