


Configuration d'un site Web PHP sur ECith Nginx, MySQL, PHP et 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
- Lancer une instance EC2
- Connectez-vous à votre instance EC2
- Mettre à jour et mettre à niveau le système
- Installer Nginx
- Installer MySQL
- Installer PHP
- Installer Git
- Configurer Nginx
- Configurez votre répertoire de sites Web
- Clonez votre référentiel
- Définir les autorisations correctes
- Configurer PHP
- Configurer SSL (facultatif mais recommandé)
- Dépannage des problèmes courants
- Meilleures pratiques et considérations de sécurité
1. Lancez une instance EC2
- Connectez-vous à votre AWS Management Console.
- Accédez à EC2 et cliquez sur « Lancer l'instance ».
- Choisissez une AMI de serveur Ubuntu (par exemple, Ubuntu Server 22.04 LTS).
- Sélectionnez un type d'instance (t2.micro est éligible au niveau gratuit).
- Configurez les détails de l'instance, ajoutez du stockage et des balises si nécessaire.
- Configurez le groupe de sécurité pour autoriser le trafic SSH (port 22), HTTP (port 80) et HTTPS (port 443).
- 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
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
4. Installez Nginx
Installer le serveur Web Nginx :
sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
Vérifiez que Nginx est en cours d'exécution :
sudo systemctl status nginx
5. Installez MySQL
Installer le serveur MySQL :
sudo apt install mysql-server -y sudo systemctl start mysql sudo systemctl enable mysql
Sécurisez votre installation MySQL :
sudo mysql_secure_installation
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
Vérifiez l'installation de PHP :
php -v
7. Installez Git
Installez Git pour le contrôle de version :
sudo apt install git -y
Vérifiez l'installation de Git :
git --version
8. Configurer Nginx
Créez une nouvelle configuration de bloc de serveur Nginx :
sudo nano /etc/nginx/sites-available/your_domain
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; } }
Activer le nouveau site :
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Tester la configuration de Nginx :
sudo nginx -t
Si le test est réussi, rechargez Nginx :
sudo systemctl reload nginx
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
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 .
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
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 {} \;
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
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
Paramètres communs à ajuster :
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 memory_limit = 256M
Après avoir apporté des modifications, redémarrez PHP-FPM :
sudo systemctl restart php8.1-fpm
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
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 :
- Vérifiez la propriété du fichier :
ls -l /var/www/your_domain
- Assurez-vous que Nginx s'exécute en tant qu'utilisateur correct :
ps aux | grep nginx
- Vérifiez la configuration de Nginx :
sudo nano /etc/nginx/nginx.conf
Assurez-vous que l'utilisateur est défini sur www-data.
Erreurs PHP
Pour les erreurs liées à PHP :
- Vérifiez les journaux PHP-FPM :
sudo tail -f /var/log/php8.1-fpm.log
- Assurez-vous que PHP-FPM est en cours d'exécution :
sudo systemctl status php8.1-fpm
- Vérifiez que le fichier de socket PHP-FPM existe :
ls /var/run/php/php8.1-fpm.sock
Problèmes Git
Si vous rencontrez des problèmes d'autorisation Git :
- Ensure the .git directory is owned by your user:
sudo chown -R ubuntu:ubuntu /var/www/your_domain/.git
- 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
15. Best Practices and Security Considerations
- Regularly update your system and software:
sudo apt update && sudo apt upgrade -y
Use strong passwords for all services (MySQL, SSH, etc.).
Configure a firewall (e.g., UFW) to restrict incoming traffic:
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable
- Implement fail2ban to protect against brute-force attacks:
sudo apt install fail2ban -y sudo systemctl start fail2ban sudo systemctl enable fail2ban
Regularly backup your website and database.
Monitor your server logs for unusual activity:
sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
Use version control (Git) for all your code changes.
Implement proper error handling and logging in your PHP application.
Use prepared statements or ORM to prevent SQL injection attacks.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Le rôle principal de MySQL dans les applications Web est de stocker et de gérer les données. 1.MySQL traite efficacement les informations utilisateur, les catalogues de produits, les enregistrements de transaction et autres données. 2. Grâce à SQL Query, les développeurs peuvent extraire des informations de la base de données pour générer du contenu dynamique. 3.MySQL fonctionne basé sur le modèle client-serveur pour assurer une vitesse de requête acceptable.

INNODB utilise des redologues et des undologs pour assurer la cohérence et la fiabilité des données. 1. REDOLOGIE RÉCLABLIER MODIFICATION DE PAGE DES DONNÉES Pour assurer la récupération des accidents et la persistance des transactions. 2.Undologs Enregistre la valeur des données d'origine et prend en charge le Rollback de la transaction et MVCC.

Par rapport à d'autres langages de programmation, MySQL est principalement utilisé pour stocker et gérer les données, tandis que d'autres langages tels que Python, Java et C sont utilisés pour le traitement logique et le développement d'applications. MySQL est connu pour ses performances élevées, son évolutivité et son support multiplateforme, adapté aux besoins de gestion des données, tandis que d'autres langues présentent des avantages dans leurs domaines respectifs tels que l'analyse des données, les applications d'entreprise et la programmation système.

La cardinalité de l'index MySQL a un impact significatif sur les performances de la requête: 1. L'indice de cardinalité élevé peut réduire plus efficacement la plage de données et améliorer l'efficacité de la requête; 2. L'indice de cardinalité faible peut entraîner une analyse complète de la table et réduire les performances de la requête; 3. Dans l'indice conjoint, des séquences de cardinalité élevées doivent être placées devant pour optimiser la requête.

Les opérations de base de MySQL incluent la création de bases de données, les tables et l'utilisation de SQL pour effectuer des opérations CRUD sur les données. 1. Créez une base de données: CreatedAtAbaseMy_First_DB; 2. Créez un tableau: CreateTableBooks (idIntauto_inCmentPrimaryKey, TitleVarchar (100) notnull, AuthorVarchar (100) notnull, publied_yearint); 3. Données d'insertion: INSERTINTOBOOKS (titre, auteur, publié_year) VA

MySQL convient aux applications Web et aux systèmes de gestion de contenu et est populaire pour son open source, ses performances élevées et sa facilité d'utilisation. 1) Par rapport à PostgreSQL, MySQL fonctionne mieux dans les requêtes simples et les opérations de lecture simultanées élevées. 2) Par rapport à Oracle, MySQL est plus populaire parmi les petites et moyennes entreprises en raison de son open source et de son faible coût. 3) Par rapport à Microsoft SQL Server, MySQL est plus adapté aux applications multiplateformes. 4) Contrairement à MongoDB, MySQL est plus adapté aux données structurées et au traitement des transactions.

InnodBBufferPool réduit les E / S de disque en mettant en cache des données et des pages d'indexation, améliorant les performances de la base de données. Son principe de travail comprend: 1. La lecture des données: lire les données de BufferPool; 2. Écriture de données: Après avoir modifié les données, écrivez dans BufferPool et actualisez-les régulièrement sur le disque; 3. Gestion du cache: utilisez l'algorithme LRU pour gérer les pages de cache; 4. Mécanisme de lecture: Chargez à l'avance des pages de données adjacentes. En dimensionner le tampon et en utilisant plusieurs instances, les performances de la base de données peuvent être optimisées.

MySQL gère efficacement les données structurées par la structure de la table et la requête SQL, et met en œuvre des relations inter-tableaux à travers des clés étrangères. 1. Définissez le format de données et tapez lors de la création d'une table. 2. Utilisez des clés étrangères pour établir des relations entre les tables. 3. Améliorer les performances par l'indexation et l'optimisation des requêtes. 4. Bases de données régulièrement sauvegarde et surveillent régulièrement la sécurité des données et l'optimisation des performances.
