Ricerca nel sito web

Creazione di host virtuali Apache con opzioni di abilitazione/disabilitazione Vhost in RHEL/CentOS 7.0


Hosting virtuale consente ad Apache Weberver di fornire contenuti diversi in base all'indirizzo IP, al nome host o al numero di porta utilizzato. Questa guida utilizzerà un approccio simile a Debian per abilitare e gestire gli host virtuali su Red Hat Enterprise Linux/CentOS 7.0 creando due directory sul percorso /etc/httpd/, che mantenere tutte le configurazioni dei file del sito Web abilitate e disabilitate: siti disponibili e siti abilitati e due tipi di script che agiscano come comandi, uno che abilita e l'altro che disabilita il virtuale specificato host: a2ensite e a2dissite. Questo approccio presenta alcuni vantaggi perché devi fare confusione con il file di configurazione httpd e ogni host virtuale ha il proprio file di configurazione che può essere trovato in un'unica posizione - gli host abilitati sono solo collegamenti simbolici - che rendono il processo di abilitazione, disabilitazione, creazione o eliminarli è molto gestibile.

Requisiti

  1. Installazione di base LAMP su RHEL/CentOS 7.0

Crea e gestisci host virtuali Apache in RHEL/CentOS 7

1. Per iniziare, inizia inserendo il percorso /etc/httpd/, crea directory disponibili per i siti e abilitate per i siti e modifica Apache httpd.conf file per applicare la nuova posizione dei siti Web abilitati.

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

2. Sul file httpd.conf aggiungi la seguente riga direttiva in fondo al file, che farà sì che Apache legga e analizzi tutti i file che si trovano su /etc/ httpd/sites-enabled/ terminava con l'estensione .conf.

IncludeOptional sites-enabled/*.conf

3. Nel passaggio successivo crea un nuovo host virtuale nella posizione siti disponibili utilizzando un nome descrittivo: in questo caso ho utilizzato rheltest.lan.conf – e utilizza il seguente file come modello.

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

Utilizzare questa configurazione come guida.

<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. Se hai cambiato la posizione DocumentRoot sul tuo host virtuale dal percorso predefinito /var/www/html ad un altro percorso, assicurati di creare anche questo percorso .

mkdir -p /var/www/rheltest.lan

NOTA: assicurati inoltre che l'host ServerName sia un record DNS valido o sia aggiunto al file host delle tue macchine locali, da cui prevedi di visitare il sito web.

5. Ora è il momento di creare script bash a2ensite e a2dissite su un percorso di sistema eseguibile – in questo caso è /usr/local /bin/ – ma
puoi utilizzare qualsiasi percorso eseguibile restituito dalla variabile di sistema ` PATH.

Crea uno script a2ensite

Crea un file seguente con l'editor che preferisci.

nano /usr/local/bin/a2ensite

Aggiungi il seguente script ad esso.

#!/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

Crea uno script a2dissite

Crea un file seguente con l'editor che preferisci.

nano /usr/local/bin/a2dissite

Aggiungi l'intero script seguente al file.

#!/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. Dopo aver creato entrambi i file di script, assicurati che siano eseguibili e inizia a usarli per abilitare o disabilitare gli host virtuali aggiungendo il nome vhost come parametro di comando.

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

7. Per testarlo, abilitare l'host virtuale creato in precedenza, riavviare il servizio Apache e indirizzare il browser al nuovo host virtuale – in questo caso http://rheltest.lan.

a2ensite rheltest.lan
systemctl restart httpd

Questo è tutto! Ora puoi utilizzare gli script bash a2eniste e a2dissite come comandi di sistema per gestire il file Apache Vhosts su RHEL/CentOS 7.0.