Suexec – Cambiar el directorio por defecto en CentOS

Introducción

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.

Suexec – Cambiar el directorio por defecto en CentOS

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.

Conclusión

Esto te puede quitar más de un dolor de cabeza en la configuración ya que nos permite luego poder ejecutar PHP con fastcgi/cgi/php-fpm.

Un saludo

Deja un comentario

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