Cambiar ruta de temporales PHP y de los log o bitácoras de apache2 y mail

En un servidor web con alta demanda y donde los usuarios suben muchos archivos adjuntos, es normal que los log suban mucho de tamaño. Cuando están subiendo muchos archivos, PHP usa como directorio temporal /tmp/requestdir y este puede llegar medir varios GB como en mi caso, y como mi partición raíz no es muy grande, me vi en la necesidad de mover todo lo que creía mucho en cuanto a temporales (/tmp) y bitácoras (/var/log). Mis logs de Apache2 y Mail crecían mucho por el alto tráfico, por lo que también los moví a otra partición con mas espacio.

El proceso siguiente, aplica para Ubuntu y Debian, aunque en mi caso lo hice en un Ubuntu 18.04.

Cambiar ruta (path) de los archivos upload temporales de PHP

Todo archivo que adjunta el usuario y lo sube a nuestro sitio web, por defecto PHP lo guarda el directorio temporal /tmp/requestdir y cuando se quedan procesos rotos, estos no se liberan y consumen espacio hasta que se reinicia el servicio o el servidor.

Cambiar el lugar donde se guardarán los archivos temporales de PHP:

sudo nano /etc/php/7.X/apache2/php.ini
...
; Temporales generales:
sys_temp_dir = "/TURUTA/tmp"
...
; Temporales de archivos subidos:
upload_tmp_dir = "/TURUTA/tmp"
...
; Si usas SOAP:
soap.wsdl_cache_dir="/TURUTA/tmp"
...
; Si usas OpCache;
opcache.lockfile_path=/TURUTA/tmp
...

Después de cambiar las rutas, para que se apliquen, solo debes de reiniciar el servicio de Apache2, pero que no se te olvide crear el nuevo directorio:

sudo mkdir /TURUTA/tmp
sudo chmod 777 /TURUTA/tmp
sudo service apache2 restart

Caso Moodle:

Si usas Moodle y tienes este problema, como en mi caso, en lugar de modificar el php.ini podrás cambiar la configuración de tu instancia Moodle (creo que a partir de la v3.8) para agregar la variable ‘localrequestdir‘, será mas fácil de hacerlo. Editar el archivo config.php

sudo nano /var/www/tu-moodle/config.php
...
$CFG->localrequestdir = '/TURUTA/tmp'; // Intended for local only temporary files. The defaults uses sys_get_temp_dir().
...

Cambiar ruta (path) de los log de apache2

Para cambiar la ruta donde se guardarán los archivos log de un sitio virtual de Apache en un Ubuntu/Debian, deberás hacer en el archivo de configuración del sitio.

sudo nano /etc/apache2/sites-enabled/TUSITIO.conf
...
# Original:
#ErrorLog ${APACHE_LOG_DIR}/aulas/error.log
#CustomLog ${APACHE_LOG_DIR}/aulas/access.log combined
# Cambio:
ErrorLog /var/TURUTA/log/apache2/SITIO/error.log
CustomLog /var/TURUTA/log/apache2/SITIO/access.log combined
...

Antes de continuar, no olviden crear el directorio donde estarán sus nuevos los logs ( ejemplo: sudo mkdir /var/TURUTA/log/apache2) y se recomienda mover los existentes a la nueva ruta, por ejemplo: sudo mv /var/log/apache2/SITIO /var/TURUTA/log/apache2/

sudo service apache2 restart

Cambiar ruta (path) de los log del correo

En Ubuntu 18.04 o mayor, los archivos de logs del correo están en /var/log/mail.log y /var/log/mail.err y para cambiar la ruta tenemos que editar el siguiente archivo:

sudo nano /etc/rsyslog.d/50-default.conf
...
#mail.* -/var/log/mail.log
mail.* -/var/TURUTA/log/mail.log
...
#mail.err /var/log/mail.err
mail.err /var/TURUTA/log/mail.err
...

Antes de continuar, no olviden crear el directorio donde estarán sus nuevos los logs ( ejemplo: sudo mkdir /var/TURUTA/log) y se recomienda mover los existentes a la nueva ruta, por ejemplo: sudo mv /var/log/mail.* /var/TURUTA/log/

Tenemos que reiniciar el servicio de rsyslog, quien es el que controla dichos log:

sudo service rsyslog restart

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada.