Pregunta

he encontrado que:

Cuando escriba lo siguiente en el terminal:

php -i | grep php.ini

obtener la salida:

  

El archivo de configuración cargado es /etc/php5/cli/php.ini @

Sin embargo, desde phpinfo(), consigo ver:

  

El archivo ini es cargado @ /etc/php5/apache2/php.ini

¿Cuál de estos está trabajando en este momento? ¿Cómo es posible tener dos archivos php.ini?

¿Fue útil?

Solución

depende de dónde se está ejecutando PHP desde. Si se ejecuta desde la línea de comandos, se utiliza el cli/php.ini y apache2/php.ini cuando se ejecuta a través de Apache.

Usted está ejecutando phpinfo() a través del navegador, por lo tanto, se obtiene /etc/php5/apache2/php.ini como la respuesta. Correr php -r "phpinfo();" | grep "Loaded Configuration" de la terminal debe ser la salida del CLI ini. La misma función, los cambios de contexto.

La ventaja de este sistema es, obviamente, para permitir diferentes configuraciones dependiendo del contexto. Para un ejemplo simplificado, es posible que desee tener en safe_mode en Apache pero es innecesario en el modo CLI.

Sus caminos .ini son en realidad bastante inusual. Normalmente, el ini predeterminado es sólo php.ini y CLI .ini se llama php-cli.ini y que residen en la misma carpeta.

No soy un experto en el tema, pero esta debe ser la idea básica. Si alguien tiene alguna correcciones, estaría dispuesto a escucharlos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top