Php.ini específico del usuario ¿Cuándo se ejecuta php como módulo?

Php.ini específico del usuario ¿Cuándo se ejecuta php como módulo?

Tengo una configuración de php que sólo se puede cambiar en el archivo ini. No puedo cambiar esta configuración en php.ini global debido a conflictos, por lo que necesitaré que este usuario sea específico. ¿Se puede hacer esto si php se ejecuta como módulo? ¿O debo cambiar php para ejecutarlo como cgi?

Parece que la mejor respuesta es "realmente no", pero puedes cambiar algunos parámetros usando los siguientes trucos.

Respuesta1

No conozco ninguna forma de especificar un php.ini separado cuando uso PHP como módulo de Apache, solo cuando uso PHP como CGI. Dicho esto, cualquiera de las opciones de configuración en php.ini se puede cambiar en el .htaccessarchivo como se muestra enhttp://php.net/configuration.changessiempre que tenga AllowOverride configurado en la configuración de Apache establecido en Optionso All.

He hecho esto en muchos de mis sitios para cambiar configuraciones comunes de PHP. Supongo que no es necesario cambiar todas las configuraciones, por lo que el número debe administrarse fácilmente agregando las opciones a su .htaccessarchivo dentro del directorio en el que necesita los cambios.

El siguiente es uno que uso en un par de sitios para cambiar include_pathy configurar la auto_prepend_fileconfiguración auto_append_file. Para elementos de bandera booleana, simplemente use php_flagen lugar de php_value.

<IfModule mod_php5.c>
    php_value auto_prepend_file 'header.inc.php'
    php_value auto_append_file 'footer.inc.php'
    php_value include_path '/path/to/private/includes:/usr/share/pear'
</IfModule>

Respuesta2

Anulé el controlador de php para un contenedor php cgi y pude especificar un archivo php.ini

Para hacer esto: cree un archivo htaccess en la carpeta que desea modificar con algo como esto:

Action php5-cgi /cgi-bin/php5-cgi.cgi
AddHandler php5-cgi .php

Luego crea un archivo 'php5-cgi.cgi' con algo como esto:

#!/bin/sh
exec /usr/bin/php-cgi "$@" -c "/home/user/php.ini"

Establezca permisos en este archivo para ejecutarlo como "usuario". Luego ejecute un archivo de prueba con phpinfo(1); para ver si tienes tu archivo ini cargado.

¡¡Gracias por la ayuda de todos!!

Respuesta3

Todos los detalles están aquí:http://php.net/configuration.changes

Respuesta4

Puede utilizar Apache "php_admin_value" por vhost/usuario.

IIRC, puede redefinir cada valor de php.ini usando este comando

información relacionada