Encuentra el archivo php.ini correcto


170

Actualmente estoy tratando de localizar el archivo php.ini correcto para editarlo y reiniciar Apache para que los cambios tengan lugar y estoy perplejo.

He encontrado tres archivos php.ini diferentes (no tengo idea de por qué hay tres) así es como encontré los archivos

$ sudo find / -name php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini

Yo también lo hice ...

$ sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Los cambié todos (solo para estar seguro) a la configuración que quería.

Reinicié apache usando

sudo service apache2 restart

Los resultados...

* Restarting web server apache2

Recargué la página y mostró que el archivo php.ini no estaba actualizado.

Sé esto porque solía

echo ini_get('post_max_size');

Que se suponía que debía cambiarse a 20M pero todavía era solo 2M

Intenté reiniciar mi computadora pensando que tal vez eso detendría el servidor apache y volvería a cargar el archivo php.ini con la configuración correcta, pero desgraciadamente ese intento también falló.

¿Hay alguna posibilidad de que haya otro archivo php.ini que pueda estar interfiriendo?


66
el 'correcto' está en el apache2subdirectorio
Joren

1
usar en updatedb; locate php.inilugar de find.
sjas

@Michael El archivo está /etc/php/5.6/apache2/php.inien Ubuntu 16.04 LTS Xenial Xerus, donde 5.6/está instalada la versión de php. Primero copie el archivo para php.original.iniluego abrirlo y editarlo con sudo gedit /etc/php/5.6/apache2/php.ini
Hedley Finger el

Respuestas:


290

Los tres archivos que tiene allí están destinados a diferentes usos.

/etc/php/5.6/cli/php.inies para el programa CLI PHP, que encontraste al ejecutar phpen el terminal.

/etc/php/5.6/cgi/php.ini es para el sistema php-cgi que no se usa específicamente en esta configuración.

/etc/php/5.6/apache2/php.inies para el complemento PHP utilizado por Apache. Este es el que necesita editar para que los cambios se apliquen a su configuración de Apache.

/etc/php/5.6/fpm/php.inies para el php5-fpmprocesador, que es un 'contenedor' compatible con fastcgi para el procesamiento de PHP (como pasar de NGINX a php5-fpm) y se ejecuta como un proceso independiente en el sistema (a diferencia del complemento Apache PHP)

Para las versiones de Ubuntu más bajos de 16,04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, y así sucesivamente, se sustituyen por /etc/php5/y así sucesivamente. De lo contrario, estos caminos siguen siendo precisos. Adapte esto en consecuencia para su entorno, reemplazando el 5.6número o con la carpeta de versión real que existe en su entorno.


1
php.ini no se encuentra en el directorio / etc / php5 / apache2. pero está disponible allí en el directorio cli.
Anuj TBE

2
@ anujsharma9196 La única razón por la que sería el caso es si no está utilizando el complemento incorporado de Apache para PHP. Las rutas de archivo todavía funcionan como se enumeran aquí hasta el día de hoy (confirmado en mi VM 15.04)
Thomas Ward

21

Intente ejecutar un script que contenga este fragmento en su navegador <?php phpinfo(); ?>y luego intente buscar algo como Archivo de configuración cargado . Esta entrada especifica el php.ini que usa PHP en su servidor Apache.


14

Para saber qué php.iniCLI está utilizando, puede ejecutar:

php -i | grep 'php.ini'

Salida de ejemplo:

$ php -i | grep 'php.ini'

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini

¡Esta debería ser la respuesta aceptada!
Marcelo Ágil

1
Esto es bueno, pero dará las configuraciones cargadas de cli solo para php. Para obtener las configuraciones cargadas de apache, debe hacer phpinfo () en una página web.
Dipu Raj

13

para php7 ubuntu 16.4

/etc/php/7.0/apache2/php.ini

1
Me falta ese archivo. ¿Qué paquete está proporcionando ese archivo?
galmok

es para php7 en ubuntu 16.4
Softmixt

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.