Maison > base de données > tutoriel mysql > Configuration d'un site Web PHP sur ECith Nginx, MySQL, PHP et Git

Configuration d'un site Web PHP sur ECith Nginx, MySQL, PHP et Git

PHPz
Libérer: 2024-07-28 14:49:33
original
1053 Les gens l'ont consulté

Setting Up a PHP Website on ECith Nginx, MySQL, PHP, and Git

Ce guide vous guidera tout au long du processus de configuration d'un site Web PHP sur une instance Amazon EC2 en utilisant Nginx comme serveur Web, MySQL comme base de données, PHP pour les scripts côté serveur, et Git pour le contrôle de version. Nous couvrirons tout, de la configuration initiale au dépannage des problèmes courants.

Table des matières

  1. Lancer une instance EC2
  2. Connectez-vous à votre instance EC2
  3. Mettre à jour et mettre à niveau le système
  4. Installer Nginx
  5. Installer MySQL
  6. Installer PHP
  7. Installer Git
  8. Configurer Nginx
  9. Configurez votre répertoire de sites Web
  10. Clonez votre référentiel
  11. Définir les autorisations correctes
  12. Configurer PHP
  13. Configurer SSL (facultatif mais recommandé)
  14. Dépannage des problèmes courants
  15. Meilleures pratiques et considérations de sécurité

1. Lancez une instance EC2

  1. Connectez-vous à votre AWS Management Console.
  2. Accédez à EC2 et cliquez sur « Lancer l'instance ».
  3. Choisissez une AMI de serveur Ubuntu (par exemple, Ubuntu Server 22.04 LTS).
  4. Sélectionnez un type d'instance (t2.micro est éligible au niveau gratuit).
  5. Configurez les détails de l'instance, ajoutez du stockage et des balises si nécessaire.
  6. Configurez le groupe de sécurité pour autoriser le trafic SSH (port 22), HTTP (port 80) et HTTPS (port 443).
  7. Examinez et lancez l'instance, en sélectionnant ou en créant une paire de clés.

2. Connectez-vous à votre instance EC2

Utilisez SSH pour vous connecter à votre instance :

ssh -i /path/to/your-key.pem ubuntu@your-instance-public-dns
Copier après la connexion

Remplacez /path/to/your-key.pem par le chemin d'accès à votre fichier de clé et your-instance-public-dns par le nom DNS public de votre instance.

3. Mettre à jour et mettre à niveau le système

Une fois connecté, mettez à jour et mettez à niveau votre système :

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

4. Installez Nginx

Installer le serveur Web Nginx :

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

Vérifiez que Nginx est en cours d'exécution :

sudo systemctl status nginx
Copier après la connexion

5. Installez MySQL

Installer le serveur MySQL :

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

Sécurisez votre installation MySQL :

sudo mysql_secure_installation
Copier après la connexion

Suivez les invites pour définir un mot de passe root et supprimer les paramètres par défaut non sécurisés.

6. Installez PHP

Nous installerons PHP 8.1 (ou la dernière version stable disponible dans les dépôts Ubuntu) :

sudo apt install php8.1-fpm php8.1-mysql php8.1-common php8.1-cli php8.1-curl php8.1-mbstring php8.1-xml php8.1-zip -y
Copier après la connexion

Vérifiez l'installation de PHP :

php -v
Copier après la connexion

7. Installez Git

Installez Git pour le contrôle de version :

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

Vérifiez l'installation de Git :

git --version
Copier après la connexion

8. Configurer Nginx

Créez une nouvelle configuration de bloc de serveur Nginx :

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

Ajoutez la configuration suivante (remplacez your_domain par votre domaine ou adresse IP réel) :

server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/your_domain;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

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

Activer le nouveau site :

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

Tester la configuration de Nginx :

sudo nginx -t
Copier après la connexion

Si le test est réussi, rechargez Nginx :

sudo systemctl reload nginx
Copier après la connexion

9. Configurez votre répertoire de sites Web

Créez le répertoire racine Web :

sudo mkdir -p /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain
sudo chmod -R 755 /var/www/your_domain
Copier après la connexion

10. Clonez votre référentiel

Si vous disposez d'un référentiel Git existant pour votre site Web, clonez-le dans votre racine Web :

cd /var/www/your_domain
git clone https://github.com/your-username/your-repo.git .
Copier après la connexion

Remplacez https://github.com/your-username/your-repo.git par l'URL réelle de votre référentiel.

Si vous démarrez un nouveau projet, initialisez un nouveau dépôt Git :

cd /var/www/your_domain
git init
Copier après la connexion

11. Définir les autorisations correctes

Définissez les autorisations appropriées pour vos fichiers Web :

sudo chown -R www-data:www-data /var/www/your_domain
sudo find /var/www/your_domain -type d -exec chmod 755 {} \;
sudo find /var/www/your_domain -type f -exec chmod 644 {} \;
Copier après la connexion

Pour permettre à l'utilisateur Ubuntu de gérer les fichiers :

sudo usermod -a -G www-data ubuntu
sudo chmod g+s /var/www/your_domain
Copier après la connexion

Vous devrez peut-être vous déconnecter et vous reconnecter pour que les modifications du groupe prennent effet.

12. Configurer PHP

Ajustez les paramètres PHP si nécessaire :

sudo nano /etc/php/8.1/fpm/php.ini
Copier après la connexion

Paramètres communs à ajuster :

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M
Copier après la connexion

Après avoir apporté des modifications, redémarrez PHP-FPM :

sudo systemctl restart php8.1-fpm
Copier après la connexion

13. Configurer SSL (facultatif mais recommandé)

Pour sécuriser votre site Web avec HTTPS, vous pouvez utiliser Let's Encrypt :

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

Suivez les instructions pour configurer SSL.

14. Dépannage des problèmes courants

Erreurs d’autorisation refusée

Si vous rencontrez des erreurs « Autorisation refusée » dans les journaux d'erreurs Nginx :

  1. Vérifiez la propriété du fichier :
   ls -l /var/www/your_domain
Copier après la connexion
  1. Assurez-vous que Nginx s'exécute en tant qu'utilisateur correct :
   ps aux | grep nginx
Copier après la connexion
  1. Vérifiez la configuration de Nginx :
   sudo nano /etc/nginx/nginx.conf
Copier après la connexion

Assurez-vous que l'utilisateur est défini sur www-data.

Erreurs PHP

Pour les erreurs liées à PHP :

  1. Vérifiez les journaux PHP-FPM :
   sudo tail -f /var/log/php8.1-fpm.log
Copier après la connexion
  1. Assurez-vous que PHP-FPM est en cours d'exécution :
   sudo systemctl status php8.1-fpm
Copier après la connexion
  1. Vérifiez que le fichier de socket PHP-FPM existe :
   ls /var/run/php/php8.1-fpm.sock
Copier après la connexion

Problèmes Git

Si vous rencontrez des problèmes d'autorisation Git :

  1. Ensure the .git directory is owned by your user:
   sudo chown -R ubuntu:ubuntu /var/www/your_domain/.git
Copier après la connexion
  1. Use sudo for Git operations or temporarily change ownership:
   sudo chown -R ubuntu:ubuntu /var/www/your_domain
   git pull
   sudo chown -R www-data:www-data /var/www/your_domain
Copier après la connexion

15. Best Practices and Security Considerations

  1. Regularly update your system and software:
   sudo apt update && sudo apt upgrade -y
Copier après la connexion
  1. Use strong passwords for all services (MySQL, SSH, etc.).

  2. Configure a firewall (e.g., UFW) to restrict incoming traffic:

   sudo ufw allow OpenSSH
   sudo ufw allow 'Nginx Full'
   sudo ufw enable
Copier après la connexion
  1. Implement fail2ban to protect against brute-force attacks:
   sudo apt install fail2ban -y
   sudo systemctl start fail2ban
   sudo systemctl enable fail2ban
Copier après la connexion
  1. Regularly backup your website and database.

  2. Monitor your server logs for unusual activity:

   sudo tail -f /var/log/nginx/access.log
   sudo tail -f /var/log/nginx/error.log
Copier après la connexion
  1. Use version control (Git) for all your code changes.

  2. Implement proper error handling and logging in your PHP application.

  3. Use prepared statements or ORM to prevent SQL injection attacks.

  4. Keep your application dependencies up-to-date and use a dependency manager like Composer for PHP projects.

By following this guide, you should have a fully functional PHP website running on an EC2 instance with Nginx, MySQL, and Git.
Remember to adapt the instructions to your specific needs and always prioritize security in your setup.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal