Saltar al contenido
Portada » httpd.conf y Cpanel: Cómo personalizar la configuración

httpd.conf y Cpanel: Cómo personalizar la configuración

TerminalEl archivo httpd.conf es el que indica a Apache todos los parámetros de configuración cuando este se inicia. Y entre otras cosas indica los módulos que debe cargar y los hosts que debe establecer. Lo normal es editar este archivo a mano, guardando copias de seguridad antes de realizar cada cambio. Sin embargo, si utilizamos Cpanel y por tanto tenemos instalado EasyApache, existe un método muy sencillo de introducir cambios en este fichero y que los cambios persistan cada vez que realicemos una actualización.

Si echamos un vistazo al httpd.conf de nuestro servidor, que normalmente se encuentra en la ruta (aunque puede variar, en CentOS al menos se encuentra ahí):

usr/local/apache/conf/

es bastante probable que encontremos bloques de código con el siguiente aspecto:

<VirtualHost XX.XX.XX.XX:80>
  ServerName myserver.domain.com
  ServerAlias www.myserver.domain.com
  DocumentRoot /home/SITENAME/public_html
  ServerAdmin webmaster@SITENAME.com
  UseCanonicalName Off
</VirtualHost>

1. Realizar cambios dentro de un VirtualHost

Si utilizamos Cpanel, dentro de la declaración de un VirtualHost, tendremos una frase comentada como la siguiente:

# DO NOT EDIT. AUTOMATICALLY GENERATED. IF YOU NEED TO MAKE A CHANGE PLEASE USE THE INCLUDE FILES.

Esta frase quiere decir que si editamos el archivo, cada vez que lo generemos nuevamente se van a borrar los cambios que hayamos hecho, así que hay que incluir los cambios utilizando plantillas, es decir, poniendo los cambios en otros ficheros .conf que se incluirán en el archivo principal una vez lo compilemos.

 # To customize this VirtualHost use an include file at the following location # Include "/usr/local/apache/conf/userdata/std/2/username/domain.com/*.conf"

Para incluir los archivos como pone en la línea superior, deberemos crear los directorios necesarios que correspondan al dominio que se vería afectado y a continuación uno o varios archivos .conf. Hay que tener en cuenta que los cambios que realicemos serán para añadir instrucciones dentro del virtualhost, por lo que no podremos añadir de esta manera una directiva VirtualHost (porque quedaría anidada dentro de otro y no se puede).

Una vez hayamos hecho los cambios deseados, deberemos verificar que los cambios realizados son correctos, ejecutando el comando:

/scripts/verify_vhost_includes

Si todo es correcto, actualizaremos los includes para que se actualice el fichero httpd.conf. Si los cambios solo afectan a un usuario:

/scripts/ensure_vhost_includes –user=<username>

Si los cambios afectan a todos los usuarios:

/scripts/ensure_vhost_includes –all-users

Y por último se reinicia Apache con el comando:

/etc/init.d/httpd restart

2. Realizar cambios fuera de un VirtualHost

Si queremos añadir directivas fuera de un VirtualHost, debemos enfocar de una manera diferente el problema. Igual que en el caso anterior, no se debe editar directamente el archivo httpd.conf, por lo que Cpanel dispone de archivos plantilla en los que añadiremos nuestras instrucciones y que se cargarán cuando reiniciemos Apache.

La ruta donde se deben introducir los includes es:

usr/local/apache/conf/includes

y disponemos de 3 posibilidades:

  • Pre-Main: El código se añadirá al principio del httpd.conf. Los archivos se llamarán “pre_main_1.conf”, “pre_main_2.conf”, etc; y se incluirán por orden.
  • Pre-VirtualHost: El código se añadirá antes del primer VirtualHost. Los archivos se llamarán “pre_virtualhost_1.conf”, “pre_virtualhost_2.conf”, etc.
  • Post-VirtualHost: El código se añadirá al final del archivo httpd.conf y los archivos se llamarán “post_virtualhost_1.conf”,”post_virtualhost_2.conf, etc”.

Si por ejemplo, quisiéramos crear un nuevo VirtualHost, podríamos añadir el código antes del primer VirtualHost existente, es decir, utilizando un archivo “pre_virtualhost_x.conf”.

Después de haber añadido los cambios deseados, deberemos reiniciar Apache:

/etc/init.d/httpd restart

¿Cuándo es útil esto?

En este blog tenemos la dirección bocabit.com, pero realmente es un dominio apuntado a otro dominio (bocabit.com). Lo que nos interesaba era que en la barra de direcciones apareciera el subdominio, por lo que tuve que añadir un VirtualHost que referenciara el mismo directorio que el dominio para que al entrar no devolviera una página de error.

También es útil si queremos añadir rutas accesibles a través de http que no se encuentren en los directorios public_html, como puede ser svn, un directorio con descargas privadas, etc.

Fuentes Cpanel: Adding custom configuration to httpd.conf CPanel EasyApache and Customizing httpd.conf Editing Virtualhost Settings in WHM / cPanel

Etiquetas: