Maison  >  Article  >  développement back-end  >  Projet PHP Apache avec hôte virtuel

Projet PHP Apache avec hôte virtuel

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-06 06:08:03284parcourir

PHP Apache project with Virtual Host

Créer le répertoire du projet

Tout d’abord, créez un répertoire pour votre projet. Par exemple, créons un répertoire appelé php :


sudo mkdir /var/www/html/php


Créer un fichier de test PHP

créez un fichier index.php dans le répertoire de votre projet :


echo "<?php phpinfo(); " | sudo tee /var/www/html/php/index.php


Définir les autorisations du répertoire

Définissez les autorisations appropriées pour qu'Apache puisse accéder au répertoire :


sudo chown -R www-data:www-data /var/www/html/php 
sudo chmod -R 755 /var/www/html/php


La commande sudo chown -R www-data:www-data /var/www/html/php effectue les actions suivantes :

  1. -R : Cette option indique que l'opération doit être effectuée de manière récursive, c'est-à-dire non seulement sur le répertoire spécifié, mais également sur tous ses sous-répertoires et fichiers.

  2. www-data:www-data : Spécifie que l'utilisateur et le groupe qui deviendront les nouveaux propriétaires des fichiers sont tous deux www-data. Il s'agit d'un utilisateur et d'un groupe courants sur les systèmes Linux qui servent d'utilisateur par défaut pour les serveurs Web tels qu'Apache et Nginx.

  3. /var/www/php : Il s'agit du chemin du répertoire dont les propriétés sont en cours de modification.

La commande sudo chmod -R 755 /var/www/html/php effectue les actions suivantes :

755 : Il s'agit d'un mode d'autorisation :

  1. Le premier chiffre (7) donne au propriétaire du fichier (ou répertoire) les autorisations de lecture (4), d'écriture (2) et d'exécution (1), pour un total de 7.

  2. Le deuxième chiffre (5) donne au groupe des autorisations de lecture (4) et d'exécution (1), mais pas d'autorisations d'écriture, pour un total de 5.

  3. Le troisième chiffre (5) donne également aux autres utilisateurs des autorisations de lecture (4) et d'exécution (1), mais pas d'autorisations d'écriture, pour un total de 5.

En résumé, cette commande modifie les autorisations de tous les fichiers et répertoires dans /var/www/html/php, permettant au propriétaire d'avoir un contrôle total (lecture, écriture et exécution), tandis que le groupe et les autres utilisateurs n'ont que la lecture. et exécuter les autorisations. Ceci est courant dans les environnements de serveur Web pour garantir que le serveur peut accéder aux fichiers nécessaires sans compromettre la sécurité.

Créer le fichier de configuration de l'hôte virtuel

Créez un nouveau fichier de configuration pour votre hôte virtuel. Le fichier doit avoir le même nom que le projet php :


sudo your_editor /etc/apache2/sites-available/php.conf


Ajouter la configuration de l'hôte virtuel

Ajoutez la configuration suivante au fichier :


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    <Directory /var/www/html/php/>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/php_error.log
    CustomLog ${APACHE_LOG_DIR}/php_access.log combined
</VirtualHost>


Analysons chaque partie du code :

    • C'est le début du bloc de configuration pour un hôte virtuel qui écoute sur le port 80, qui est le port par défaut pour HTTP. L'astérisque (*) indique que l'hôte virtuel acceptera les connexions à partir de n'importe quelle adresse IP.
  1. ServerAdmin webmaster@localhost

    • Définit l'adresse e-mail de l'administrateur du serveur. Cette adresse e-mail peut être utilisée dans les messages d'erreur ou lorsqu'un utilisateur doit contacter l'administrateur.
  2. Nom du serveur php.info

    • Spécifie le nom du serveur auquel ce paramètre s'applique. Dans ce cas, l'hôte virtuel répondra aux demandes de php.info. Il est important que ce nom soit correctement résolu en IP du serveur (généralement configurée dans le fichier /etc/hosts ou dans DNS).
  3. DocumentRoot /var/www/html/php

    • Définit le répertoire contenant les fichiers qui seront servis lorsque quelqu'un accède au ServerName (dans ce cas, php.info). Dans cet exemple, les fichiers se trouvent dans /var/www/html/php.
    • Ce bloc précise les paramètres spécifiques au répertoire indiqué. Les paramètres de ce bloc affectent le comportement d'Apache pour ce répertoire spécifique.

Autoriser tout remplacer

  • Il permet aux fichiers .htaccess du répertoire /var/www/html/php/ de remplacer les paramètres d'Apache. Cela signifie que les développeurs peuvent utiliser les fichiers .htaccess pour configurer des règles, telles que les redirections ou le contrôle d'accès, sans avoir à modifier le fichier de configuration principal d'Apache.

Exiger que tout soit accordé

  • Permet à tous les utilisateurs d'avoir accès au répertoire. Cela signifie que n'importe qui peut accéder aux fichiers contenus dans /var/www/html/php/ sans restrictions.
  1. ErrorLog ${APACHE_LOG_DIR}/php_error.log
  2. Spécifie le chemin d'accès au fichier journal des erreurs Apache pour cet hôte virtuel. Le ${APACHE_LOG_DIR} est une variable généralement définie dans le fichier de configuration principal d'Apache, pointant vers le répertoire où les journaux sont stockés. Ici, les erreurs liées à cet hôte virtuel seront enregistrées dans le fichier php_error.log.

  3. CustomLog ${APACHE_LOG_DIR}/php_access.log combiné

  4. Defines the path to the Apache access log file for this Virtual Host. Like ErrorLog, this also uses the ${APACHE_LOG_DIR} variable. The combined format records information about requests, including the client's IP address, the time of the request, the HTTP method, the URL requested, the status code and the user agent.

Enable the Virtual Host

Enable the new Virtual Host with the command:


sudo a2ensite php.conf


Activate the Rewrite Module (if necessary)

If you need to use .htaccess or URL rewrites, activate the Apache rewrite module:


sudo a2enmod rewrite


Add Server Name to Hosts

To access your project using the server name you defined (php.info), add an entry in the /etc/hosts file:


sudo your_editor /etc/hosts


Add the following line to the end of the file:


<p>127.0.0.1   php.info</p>




Restart the Apache

Restart Apache for the changes to take effect:


<p>sudo systemctl restart apache2</p>




Accessing the Project

You can now access your project in the browser by typing http://php.info.

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!

Déclaration:
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