Trova il file php.ini corretto


170

Attualmente sto cercando di individuare il file php.ini corretto per modificarlo e riavviare apache in modo che le modifiche vengano apportate e sono sconcertato.

Ho trovato tre diversi file php.ini (non ho idea del perché ce ne siano tre), ecco come ho trovato i file

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

Ho anche fatto ....

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

Li ho cambiati tutti (solo per essere sicuri) con le impostazioni che desideravo.

Ho riavviato Apache utilizzando

sudo service apache2 restart

I risultati...

* Restarting web server apache2

Ho ricaricato la pagina e ha mostrato che il file php.ini non è stato aggiornato.

Lo so perché l'ho usato

echo ini_get('post_max_size');

Che doveva essere cambiato in 20M ma era ancora solo 2M

Ho provato a riavviare il mio computer pensando che forse avrebbe fermato il server apache e ricaricato il file php.ini con l'impostazione corretta, ma purtroppo anche quel tentativo non è riuscito.

C'è qualche possibilità che ci possa essere un altro file php.ini che potrebbe interferire?


6
quello "corretto" si trova nella apache2sottocartella
Joren,

1
utilizzare updatedb; locate php.iniinvece di find.
sjas,

@Michael Il file è /etc/php/5.6/apache2/php.iniin Ubuntu 16.04 LTS Xenial Xerus, dove 5.6/è installata la versione di php. Prima copia il file per php.original.iniaprirlo per modificarlo con sudo gedit /etc/php/5.6/apache2/php.ini
Hedley Finger

Risposte:


290

I tre file che hai lì sono ciascuno pensato per usi diversi.

/etc/php/5.6/cli/php.iniè per il programma CLI PHP, che hai trovato eseguendo phpsul terminale.

/etc/php/5.6/cgi/php.ini è per il sistema php-cgi che non è specificamente utilizzato in questa configurazione.

/etc/php/5.6/apache2/php.iniè per il plugin PHP utilizzato da Apache. Questo è quello che devi modificare per applicare le modifiche alla tua configurazione di Apache.

/etc/php/5.6/fpm/php.iniè per il php5-fpmprocessore, che è un 'wrapper' compatibile con fastcgi per l'elaborazione di PHP (come passare da NGINX a php5-fpm) e viene eseguito come processo autonomo sul sistema (a differenza del plug-in Apache PHP)

Per le versioni di Ubuntu inferiori a 16.04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, e così via, sono sostituiti da /etc/php5/e così via. Altrimenti, questi percorsi rimangono precisi. Adattarlo di conseguenza per il proprio ambiente, sostituendo il 5.6numero o con la cartella della versione attuale presente nel proprio ambiente.


1
php.ini non si trova nella directory / etc / php5 / apache2. ma è disponibile lì nella directory cli.
Anuj TBE,

2
@ anujsharma9196 L'unico motivo che potrebbe verificarsi è se non stai utilizzando il plug-in integrato di Apache per PHP. I percorsi dei file funzionano ancora come è elencato qui fino ad oggi (confermato sulla mia 15.04 VM)
Thomas Ward

21

Prova a eseguire uno script contenente questo snippet nel tuo browser, <?php phpinfo(); ?>quindi prova a cercare qualcosa come File di configurazione caricato . Questa voce specifica il php.ini utilizzato da PHP nel tuo server Apache.


14

Per scoprire quale php.iniCLI sta usando puoi eseguire:

php -i | grep 'php.ini'

Esempio di output:

$ 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

Questa dovrebbe essere la risposta accettata!
Marcelo Ágil,

1
Questo è buono, ma fornirà le configurazioni caricate di cli solo per php. Per ottenere le configurazioni caricate di apache è necessario eseguire phpinfo () su una pagina Web.
Dipu Raj,

13

per php7 ubuntu 16.4

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

1
Mi manca quel file. Quale pacchetto fornisce quel file?
Galmok,

è per php7 su Ubuntu 16.4
Softmixt,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.