Cambios especificacos en el php.ini disable_functions por dominio
Cambiar individualmente en un dominio disable_functions
Un escenario muy común en sistemas, es la salida hacia adelante obviando los problemas que puede causar nuestra decisión.
Un caso común es el quitar las protecciones de forma global a través de el proceso general del servidor, en lugar de buscar una solución individual, para el caso concreto.
En el caso de Directadmin, si tenemos la opción secure_php esta añadirá a la configuración del php del servidor
disable_functions = exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
mysqli.allow_local_infile = Off
expose_php = Off
register_globals = Off
Existe el camino fácil, que es ir quitando las funciones que molestan a nuestros clientes, How to customize the disable_functions list y existe otro camino, que es desahbilitar al que nuestro cliente necesita, si esto es totalmente necesario, ya sea por un tiempo limitado, o de forma definitiva.
Opciones de php.ini por dominio
Opciones por dominio nos ayuda a esto último ya que tratar de modificar disable_functions
via .user_ini
aunque este autorizado, no funcionará para modificar esa clave.
- Lo primero es buscar el path de nuestra instalación para nuestro Directadmin y nuestra distro.
En mi caso esta en /usr/local/phpXX/lib/php.conf.d
Así que, siguiendo el manual, introducido el path y el dominio o subdominio del que quiero tal corrección, el nos lo dará.
En nuestro caso el cliente tenia algunos despliegues con Laravel que necesitaban shell_exec
por lo que lo eliminamos del fichero ini personalizado,
/usr/local/php83/lib/php.conf.d/30-subdomain.full.tld.ini
disable_functions = exec,system,passthru,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Después simplemente tenemos que hacer un rebuild de la función de seguridad.
da build secure_php
##### Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos.
También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad.
El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)
Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/store/soporte-profesional).