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.
Commencez par vous assurer que votre serveur est à jour.
sudo apt update && sudo apt upgrade -y
Nginx servira votre application.
sudo apt install nginx -y
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
Vous pouvez vérifier que Nginx est en cours d'exécution en visitant l'adresse IP de votre serveur dans un navigateur.
Ensuite, nous installerons le serveur de base de données MySQL.
sudo apt install mysql-server -y
Sécuriser l'installation de MySQL :
sudo mysql_secure_installation
Cela vous demandera de configurer un mot de passe root et de supprimer les valeurs par défaut non sécurisées.
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
Vérifiez l'installation de PHP :
php -v
Vous devriez voir quelque chose comme :
PHP 7.x.x (cli) (built: ...)
Connectez-vous à la console MySQL en tant qu'utilisateur root :
sudo mysql
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;
Assurez-vous que le nouvel utilisateur de la base de données peut se connecter :
mysql -u laravel_user -p
Vous serez invité à saisir le mot de passe, puis saisissez :
SHOW DATABASES;
Vous devriez voir laravel_app dans la liste.
Laravel utilise Composer comme gestionnaire de dépendances. Installer Composer :
sudo apt install composer -y
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
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
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
Nous allons créer un fichier de configuration Nginx pour le projet Laravel.
sudo nano /etc/nginx/sites-available/laravel_app
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; } }
Remplacez your_domain_or_ip par votre nom de domaine réel ou l'adresse IP de votre serveur.
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/
Testez la configuration de Nginx pour vous assurer qu'il n'y a pas d'erreurs de syntaxe :
sudo nginx -t
Si tout va bien, redémarrez Nginx :
sudo systemctl reload nginx
Exécutez les migrations Laravel pour configurer la base de données :
cd /var/www/laravel_app php artisan migrate
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.
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
Suivez les instructions pour installer un certificat SSL. Certbot configurera automatiquement Nginx pour rediriger le trafic HTTP vers HTTPS.
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.
php artisan queue:work
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.
sudo crontab -e
Ajoutez la ligne suivante :
* * * * * php /var/www/laravel_app/artisan schedule:run >> /dev/null 2>&1
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!