El siguiente tutorial me ha venido genial en varias ocasiones, debido a que he tenido que recompilar el suexec puesto que el document root del mismo estaba mal apuntado debido a «herencias».  Antes de nada, quiero indicar que este tutorial es de un compañero, al que enlazo a continuación como fuente:

Suexec – Cambiar el directorio por defecto en CentOS

El problema que nos encontramos es que hay proveedores que cambian el directorio por defecto donde se encuentra el Suexec. Por ejemplo al parecer en las CentOS suele ser /home y en el caso de que cambiemos el directorio de nuestras webs esto no funcionaría.

En versiones de Debian lo tenemos un poco más fácil ya que han establecido algo llamado “suexec-custom” el cual nos permite cambiar el directorio suexec de una manera más fácil.

Para CentOS, por desgracia, no se puede hacer de la misma manera y las soluciones que tenemos son:

  1. Mover y configurar todo el contenido en /home
  2. Cambiar el directorio por defecto donde está configurado el suexec.

En nuestro caso elegiremos la opción 2 la cual nos llevará a compilar.

Lo primero que debemos tener en cuenta es que para compilar necesitaremos instalar lo siguiente:

yum install yum-utils
yum groupinstall 'Development Tools'
yum install pcre pcre-devel apr apr-devel apr-util apr-util-devel

Esto nos preparará el entorno para poder compilar apache. Ahora nos crearemos un directorio que es donde trabajaremos por ejemplo “/root/compilar/http”. Una vez dentro del directorio:

yumdownloader --source httpd

Esto nos descargará los source del paquete httpd. Pero ahora tenemos que descomprimir dicho paquete para obtener las source:

rpm -Uvh httpd-2.4.6-45.el7.centos.4.src.rpm

Nos dará unos warnings pero nos dejará el directorio en el home del usuario y se llama rmpbuild. Es decir ahora nos dirigimos a “/root/rpmbuild”.

Veremos varios directorios “SOURCES” y “SPECS”. Nos interesa el directorio SOURCES así que accedemos a el y descomprimimos el fichero.

tar -xjvf httpd-2.4.6.tar.bz2

En nuestro caso httpd-2.4.6, es la carpeta que nos crearía y procedemos a entrar en ella.

cd httpd-2.4.6
./configure --enable-suexec --with-suexec-docroot=/var/www --with-suexec-logfile=/etc/httpd/logs/suexec.log --with-suexec-bin=/usr/sbin/suexec --with-suexec-caller=apache

Recordamos que el parámetro que nos interesa es “–with-suexec-docroot=/var/www” y tener en cuenta “–with-suexec-logfile=/etc/httpd/logs/suexec.log”. Este fichero de log se tiene que crear también ya que sino puede dar problemas.

Si todo ha ido bien, no nos habrá dado ningún error sino instalar cualquier librería que falte, entonces procedemos a realizar la compilación. Para ello:

make -j4

Una vez que haya finalizado de compilar entonces tendremos listo nuestro nuevo suexec en la ruta “support/suexec”.

Antes de hacer nada vamos a realizar una copia del suexec original

cp -a /usr/sbin/suexec{,.bak}

Y ahora aplicaremos el nuevo sustituyendo el viejo.

cp support/suexec /usr/sbin/

Y aplicamos los permisos correspondientes. Esto es importante (lo del 4) porque sino puedes tener problemas.

chmod 4750 /usr/sbin/suexec

Reiniciamos apache y listo.

NOTA: Para comprobar si está todo correcto ejecutamos suexec -V para ver a qué directorio estaba apuntando.


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *