2012-02-13 19 views
5

¿Es posible tener solo un archivo php.ini, por ejemplo en la raíz web (o incluso fuera de él para evitar que las personas accedan a él a través de GET) y decirle a PHP de manera rápida y fácil dónde ¿es?Establecer ruta a php.ini

Sé que puede establecer las directivas php.ini en .htaccess, pero ¿es posible definir un archivo php.ini específico para ser utilizado?

Respuesta

9

Añadir esto a la configuración del servidor ...

<VirtualHost 1.2.3.4:80> 
PHPINIDir /path/to/new/php_ini 
</VirtualHost> 

Asegúrese de que acaba de incluir la ruta al directorio, no toda la ruta de acceso al archivo.

A continuación, reinicie Apache.

Comprobar que funcionó con phpinfo().

+0

Hmm ... Eso funcionaría, pero no tengo acceso a esa configuración de servidor. –

+0

@Kolink Si no tiene acceso a eso, consulte a su anfitrión. Es posible que ya hayan establecido algo. – alex

+0

Bien, gracias. Voy a. :) –

3

Echa un vistazo a la sección .user.ini en php docs.

Desde PHP 5.3.0, PHP incluye soporte para archivos .Itaccess-style INI en por directorio.

Pero junto a la solución .unser.ini puede colocar un archivo ini adicional en el directorio "archivos .ini adicionales analizados". Allí puede usar un único archivo ini para sobrescribir todas las demás configuraciones. Nómbrelo con zzz al principio y será analizado al fin. Esto también es fácil para su hoster desplegar sin destruir su configuración.

+1

Te perdiste citar una parte muy importante: _Desde PHP 5.3.0, PHP incluye soporte para la configuración de archivos INI por directorio. ** Estos archivos son procesados ​​solo por CGI/FastCGI SAPI ** _ – lucaferrario

0

Kolink, sospecho que usted está en un servicio de alojamiento compartido, en cuyo caso su anfitrión puede estar utilizando algo llamado suPHP. En este caso, como usted describe, la directiva PHPINIDir no funciona, en cuyo caso hay una directiva suPHP_ConfigPath.

En términos de acceso, que tienen un estándar de mod_rewrite en mi DOCROOT/.htaccess:

RewriteEngine On 
RewriteBase /
# if a forbidden directory or file name (starting with a . or /) then raise 404 Fatal 
RewriteRule (^|/)[_.] -   [F] 

Lo que esto hace es lo quiera cualquier solicitud de cualquier nombre de archivo o directorio con el prefijo . o _. Tengo un DOCROOT/_private donde guardo estas cosas para mí:

suPHP_ConfigPath DOCROOT/_private 

donde tendrá que reemplazar docroot por la configuración local de su servicio. Busque DOCUMENT_ROOT en una lista de phpinfo().

+0

En realidad, estoy en un VDS en este caso. De todos modos, resulta que suPHP_ConfigPath fue la respuesta (le pregunté al host sobre ello). –

+0

? VDS? no es un acrónimo con el que me he encontrado. Si te refieres a VPS, ¿por qué demonios lo has configurado para suPHP ?. La única razón lógica para usar suPHP es habilitar el control de acceso basado en UID para mantener la separación entre cuentas cohosted. – TerryE

+0

Servidor Dedicado Virtual. Para ser honesto, no me importa cómo funciona, siempre y cuando funcione y haga lo que le digo que haga. –

Cuestiones relacionadas