Búsqueda de sitios web

Creación de hosts virtuales Apache con opciones de habilitar/deshabilitar Vhosts en RHEL/CentOS 7.0


El alojamiento virtual permite a Apache Weberver ofrecer contenido diferente según la dirección IP, el nombre de host o el número de puerto utilizado. Esta guía utilizará un enfoque similar a Debian para habilitar y administrar hosts virtuales en Red Hat Enterprise Linux/CentOS 7.0 mediante la creación de dos directorios en la ruta /etc/httpd/, que mantenga todas las configuraciones de archivos del sitio web habilitadas y deshabilitadas: sitios disponibles y sitios habilitados, y dos tipos de scripts para actuar como comandos, uno que habilita y otro que deshabilita los archivos virtuales especificados. hosts: a2ensite y a2dissite. Este enfoque tiene algunas ventajas porque hay que meterse con el archivo de configuración httpd y cada host virtual tiene su propio archivo de configuración que se puede encontrar en una única ubicación (los hosts habilitados son solo enlaces simbólicos) que facilitan el proceso de habilitar, deshabilitar, crear o eliminarlos muy manejable.

Requisitos

  1. Instalación básica de LAMP en RHEL/CentOS 7.0

Cree y administre hosts virtuales Apache en RHEL/CentOS 7

1. Para comenzar, comience ingresando en la ruta /etc/httpd/, cree directorios de sitios disponibles y habilitados para sitios y edite Apache httpd.conf archivo para aplicar la nueva ubicación de los sitios web habilitados.

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

2. En el archivo httpd.conf agregue la siguiente línea directiva en la parte inferior del archivo, lo que hará que Apache lea y analice todos los archivos ubicados en /etc/ httpd/sites-enabled/ terminó en la extensión .conf.

IncludeOptional sites-enabled/*.conf

3. En el siguiente paso, cree un nuevo host virtual en la ubicación sitios disponibles usando un nombre descriptivo; en este caso he usado rheltest.lan.conf – y utilice el siguiente archivo como plantilla.

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

Utilice esta configuración como guía.

<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 cambió la ubicación de DocumentRoot en su host virtual desde /var/www/html por defecto a otra ruta, asegúrese de crear también esta ruta. .

mkdir -p /var/www/rheltest.lan

NOTA: Asegúrese también de que el host ServerName sea un registro DNS válido o esté agregado al archivo de hosts de su máquina local, desde donde planea visitar el sitio web.

5. Ahora es el momento de crear los scripts bash a2ensite y a2dissite en una ruta ejecutable del sistema; en este caso es /usr/local. /bin/ – pero
puede utilizar cualquier ruta ejecutable que genere la variable del sistema ` PATH.

Crear un script a2ensite

Cree el siguiente archivo con el editor que elija.

nano /usr/local/bin/a2ensite

Agregue el siguiente script.

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

Crear un script a2dissite

Cree el siguiente archivo con el editor que elija.

nano /usr/local/bin/a2dissite

Agregue todo el siguiente script al archivo.

#!/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. Después de crear ambos archivos de script, asegúrese de que sean ejecutables y comience a usarlos para habilitar o deshabilitar hosts virtuales agregando el nombre del vhost. como parámetro de comando.

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

7. Para probarlo, habilite el host virtual creado anteriormente, reinicie el servicio Apache y dirija el navegador al nuevo host virtual, en este caso http://rheltest.lan.

a2ensite rheltest.lan
systemctl restart httpd

¡Eso es todo! Ahora puede utilizar los scripts bash a2eniste y a2dissite como comandos del sistema para administrar archivos Apache Vhosts en RHEL/CentOS 7.0.