2012-05-19 31 views
46

Pasé de mi viejo apache a nginx y php 5.3.10. Y cuando traté de modificar php.ini para satisfacer mis necesidades, me encontré con que hay 3 de ellos:php.ini: ¿cuál?

$ locate php.ini 

/etc/php5/cgi/php.ini 
/etc/php5/cli/php.ini 
/etc/php5/fpm/php.ini 

¿Cuál debo editar?

+27

Pregunte a 'phpinfo()' –

+0

como seguimiento en Pekka: busque en su 'phpinfo()' para _archivo de configuración (php.ini) Path_ – Tim

+0

@Pekka Me preocupa que cada php.ini funcione en una diferente situación (cli, web, cgi rápida). – HappyDeveloper

Respuesta

59

En general, el archivo cli/php.ini se usa cuando se llama al binario de PHP desde la línea de comandos.
Puede comprobar que se ejecuta php --ini desde la línea de comandos.

fpm/php.ini se utilizará cuando PHP se ejecute como FPM, que es el caso con una instalación nginx.
Y puede verificar que llame al phpinfo() desde una página php servida por su servidor web.

cgi/php.ini, en su caso, lo más probable es que no se use.


El uso de dos distintos php.ini archivos (uno para la ICE, y el otro para servir páginas de su servidor web) se hace muy a menudo, y tiene uno ventajas principales: le permite tener diferentes valores de configuración en cada caso.

Por lo general, en el archivo de php.ini que se utiliza por el servidor web, se deberá especificar una bastante corto max_execution_time: páginas web deben ser servidos rápido, y si una página necesita más que unas pocas docenas de segundos (30 segundos, de forma predeterminada), es probable que se deba a un error, y la generación de la página debe detenerse.
Por otro lado, puede tener secuencias de comandos bastante largas iniciadas desde su crontab (o a mano), lo que significa que el archivo php.ini que se utilizará es el de cli/. Para esos scripts, especificará un max_execution_time mucho más largo en cli/php.ini que en fpm/php.ini.

max_execution_time es un ejemplo común; usted podría hacer lo mismo con muchas otras directivas de configuración, por supuesto.

+0

Fui de la opinión de que el CLI PHP exe ignoró por completo max_execution_time, por razones obvias – RiggsFolly

3

Realmente depende de la situación, para mí es en fpm ya que estoy usando PHP5-FPM. Una solución a su problema podría ser un php.ini universal y luego usando un enlace simbólico creado como:

ln -s /etc/php5/php.ini php.ini 

A continuación, las modificaciones que haga será en un archivo .ini general. Probablemente esta no sea realmente la mejor solución, es posible que desee estudiar la modificación de alguna configuración para que literalmente use un archivo, en una ubicación. No múltiples ubicaciones pirateadas juntas.

+0

No entiendo el enlace. php5/php.ini no existe, ¿debería crearlo? – HappyDeveloper

+0

@HappyDeveloper uh lo siento, podría ser simplemente/etc/php/ –

+0

De todos modos, no puedo establecer algunas opciones como display_erros = On, sospecho que suhosin se asegura de apagarlo después de que se carguen todos los php.ini. – HappyDeveloper

0

Aunque la respuesta de Pascal fue detallado e informativo no menciona alguna información clave en el supuesto de que todo el mundo sabe cómo usar phpinfo()

Para aquellos que no lo hacen:

Vaya a sus servidores web carpeta raíz tales como /var/www/

Dentro de esta carpeta crear un archivo de texto llamado info.php

Editar el archivo y el tipo phpinfo()

Vaya al archivo, tales como: http://www.example.com/info.php

Aquí podrás ver el camino php.ini bajo Loaded Configuration File:

phpinfo

0

Puede encontrar lo que es el archivo php.ini utilizado:

  • Agregue phpinfo() en una php pag E y mostrar la página (como el cuadro bajo)
  • Desde el shell, escriba: php -i

A continuación, se puede encontrar la información en el archivo de configuración cargado (por lo que aquí es/usuario/local/etc/php/php.ini)

a veces, se han indicado (ninguno), en este caso sólo hay que poner su php.ini personalizado que se puede encontrar aquí: http://git.php.net/?p=php-src.git;a=blob;f=php.ini-production;hb=HEAD

Espero que este answe Ayudará.

Cuestiones relacionadas