Recherche de site Web

Création d'hôtes virtuels Apache avec les options d'activation/désactivation des hôtes virtuels dans RHEL/CentOS 7.0


L'hébergement virtuel permet à Apache Weberver de diffuser différents contenus en fonction de l'adresse IP, du nom d'hôte ou du numéro de port utilisé. Ce guide utilisera une approche de type Debian pour activer et gérer les hôtes virtuels sur Red Hat Enterprise Linux/CentOS 7.0 en créant deux répertoires sur le chemin /etc/httpd/, qui conserver toutes les configurations de fichiers de sites Web activées et désactivées : sites disponibles et sites activés, ainsi que deux types de scripts pour agir comme des commandes, l'un qui active et l'autre qui désactive le virtuel spécifié. hôtes – a2ensite et a2dissite. Cette approche présente certains avantages car vous devez jouer avec le fichier de configuration httpd et chaque hôte virtuel possède son propre fichier de configuration qui peut être trouvé à un seul emplacement – les hôtes activés ne sont que des liens symboliques – qui rendent le processus d'activation, de désactivation, de création ou les supprimer est très gérable.

Exigences

  1. Installation de base de LAMP sur RHEL/CentOS 7.0

Créer et gérer des hôtes virtuels Apache dans RHEL/CentOS 7

1. Pour commencer, commencez par entrer le chemin /etc/httpd/, créez des répertoires disponibles pour les sites et activés pour les sites et modifiez Apache httpd.conf fichier pour appliquer le nouvel emplacement des sites Web activés.

cd /etc/httpd/
mkdir sites-available sites-enabled
nano conf/httpd.conf

2. Sur le fichier httpd.conf, ajoutez la ligne de directive suivante au bas du fichier, ce qui permettra à Apache de lire et d'analyser tous les fichiers situés sur /etc/ httpd/sites-enabled/ se terminait par l'extension .conf.

IncludeOptional sites-enabled/*.conf

3. À l'étape suivante, créez un nouvel hôte virtuel sur un emplacement sites disponibles en utilisant un nom descriptif – dans ce cas, j'ai utilisé rheltest.lan.conf – et utilisez le fichier suivant comme modèle.

nano /etc/httpd/sites-available/rheltest.lan.conf

Utilisez cette configuration comme guide.

<VirtualHost *:80>
        ServerName rheltest.lan
        DocumentRoot "/var/www/rheltest.lan"
                <Directory "/var/www/rheltest.lan">
                Options Indexes FollowSymLinks MultiViews
         # AllowOverride controls what directives may be placed in .htaccess files.      
                        AllowOverride All
        # Controls who can get stuff from this server file
                        Order allow,deny
                        Allow from all
           </Directory>
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
        ErrorLog  /var/log/httpd/rheltest.lan-error.log
        CustomLog /var/log/httpd/rheltest.lan-access.log combined
</VirtualHost>

4. Si vous avez modifié l'emplacement DocumentRoot sur votre hôte virtuel de /var/www/html par défaut à un autre chemin, assurez-vous de créer également ce chemin. .

mkdir -p /var/www/rheltest.lan

REMARQUE : assurez-vous également que l'hôte ServerName est un enregistrement DNS valide ou qu'il est ajouté au fichier d'hôtes de votre machine locale, à partir de laquelle vous prévoyez de visiter le site Web.

5. Il est maintenant temps de créer des scripts bash a2ensite et a2dissite sur un chemin système exécutable – dans ce cas, c'est /usr/local /bin/ – mais
vous pouvez utiliser n'importe quel chemin exécutable généré par la variable système ` PATH.

Créer un script a2ensite

Créez un fichier suivant avec l'éditeur de votre choix.

nano /usr/local/bin/a2ensite

Ajoutez-y le script suivant.

#!/bin/bash
if test -d /etc/httpd/sites-available && test -d /etc/httpd/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/httpd/sites-available
mkdir /etc/httpd/sites-enabled
fi

avail=/etc/httpd/sites-available/$1.conf
enabled=/etc/httpd/sites-enabled/
site=`ls /etc/httpd/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: a2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else

echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then

echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

Créer un script a2dissite

Créez un fichier suivant avec l'éditeur de votre choix.

nano /usr/local/bin/a2dissite

Ajoutez l'intégralité du script suivant au fichier.

#!/bin/bash
avail=/etc/httpd/sites-enabled/$1.conf
enabled=/etc/httpd/sites-enabled
site=`ls /etc/httpd/sites-enabled/`

if [ "$#" != "1" ]; then
                echo "Use script: a2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else

if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Apache: sudo systemctl restart httpd"
exit 0
fi
fi

6. Une fois les deux fichiers de script créés, assurez-vous qu'ils sont exécutables et commencez à les utiliser pour activer ou désactiver les hôtes virtuels en ajoutant le nom de l'hôte virtuel. comme paramètre de commande.

chmod +x /usr/local/bin/a2*
a2ensite vhost_name
a2disite vhost_name

7. Pour le tester, activez l'hôte virtuel créé précédemment, redémarrez le service Apache et dirigez le navigateur vers le nouvel hôte virtuel – dans ce cas http://rheltest.lan.

a2ensite rheltest.lan
systemctl restart httpd

C'est ça! Vous pouvez désormais utiliser les scripts bash a2eniste et a2dissite comme commandes système pour gérer le fichier Apache Vhosts sur RHEL/CentOS 7.0.