2010-01-26 9 views
6

Supongamos que si quiero cambiar el valor de¿Cuál es la diferencia entre php.ini y .htaccess?

php_value post_max_size 20M in .htaccess 

post_max_size 20M in php.ini 

Ambos harán misma operación. Entonces, ¿cuál es la diferencia entre php.ini y .htaccess?

+0

Si está trabajando en un solo host, las diferencias son menores.Los archivos existen en dos ubicaciones diferentes para los sistemas que alojan muchos sitios (por ejemplo, un host web compartido), por lo que las opciones de configuración se pueden configurar sitio por sitio sin dar permiso a los usuarios para un archivo que a) afectará a otros usuarios b) tienen permisos peligrosamente generosos. – antik

Respuesta

11

La configuración en el php.ini se utiliza para todo el servidor mientras que la configuración en un archivo .htaccess sólo se utiliza cuando una solicitud se dirige al directorio o subdirectorio el archivo .htaccess se encuentra en .

para que pueda tener una configuración global o por defecto en su php.ini y configuraciones específicas para los directorios individuales en .htaccess archivos. Además, el proveedor de alojamiento web a menudo no permite el acceso a php.ini ni a la configuración del servidor, pero solo permite .htaccess archivos.

Pero tenga en cuenta que configuration modes está obligado a todas las configuraciones de PHP.

+0

+1 a la derecha. ¿No era de alguna manera posible tener php.ini por directorio también? ¿O solo en IIS? –

1

Depende de cómo esté instalado PHP en su servidor; si está instalado como un módulo de Apache, entonces usará los archivos .htaccess para emitir directivas PHP, ya que Apache lee y ejecuta .htacess.

Si ejecuta PHP como CGI, entonces usará un archivo php.ini, ya que cualquier cosa en .htaccess no afectará su PHP.

Puede comprobar cómo se instala PHP haciendo un archivo php con phpinfo(); en.

Esto solo se refiere a las anulaciones locales para un directorio específico; Independientemente de cómo esté instalado PHP, lee su archivo php.ini principal.

2

Los valores de configuración puestos en PHP.ini son para todo el servidor, se aplican a todos los sitios que se ejecutan en ese servidor. Donde los valores de configuración puestos en .htaccess son para sitios individuales.

+0

existe en la perspectiva de seguridad cuál es bueno – Bharanikumar

+0

Tener configuraciones incorrectas en PHP.ini personas realmente pueden tener acceso a su archivo .htaccess. Y como se mencionó si sus configuraciones no son específicas del sitio, explíquelas en PHP.ini, si desea que un sitio en particular tenga configuraciones particulares, defínelas en .htaccess. – Zaje

1

No es una respuesta a su pregunta, pero un dato interesante que yo no conocía, al usar PHP en Windows, es posible establecer la configuración por directorio en el registro. Desde el manual: configuración de PHP

Cambio a través del registro de Windows

Cuando se usa PHP en Windows, los valores de configuración pueden modificarse en función de cada directorio mediante el registro de Windows. Los valores de configuración se almacenan en la clave de registro HKLM \ SOFTWARE \ PHP \ Per Directory Values, en las claves secundarias correspondientes a los nombres de ruta. Por ejemplo, los valores de configuración para el directorio c: \ inetpub \ wwwroot se almacenarían en la clave HKLM \ SOFTWARE \ PHP \ Per Directory Values ​​\ c \ inetpub \ wwwroot. La configuración para el directorio estaría activa para cualquier script que se ejecute desde este directorio o cualquier subdirectorio del mismo. Los valores debajo de la clave deben tener el nombre de la directiva de configuración de PHP y el valor de la cadena. Las constantes de PHP en los valores no se analizan. Sin embargo, solo los valores de configuración modificables en PHP_INI_USER se pueden establecer de esta manera, los valores de PHP_INI_PERDIR no pueden.

Cuestiones relacionadas