2010-10-06 20 views
15

ho scoperto che:2 file php.ini

Quando ho digitare quanto segue sul terminale:

php -i | grep php.ini 

ottengo l'output:

il file di configurazione caricato è @/etc/php5/cli/php.ini

Tuttavia, da phpinfo(), posso vedere:

Il file ini caricato è @ /etc/php5/apache2/php.ini

Quale di questi sta lavorando in questo momento? Come è possibile avere due file php.ini?

+0

percorso sul server potrebbe essere diverso quindi percorso mostrato nel browser – Grumpy

risposta

28

Dipende da dove si sta eseguendo PHP da. Se lo si esegue dalla riga di comando, utilizza cli/php.ini e apache2/php.ini quando viene eseguito tramite apache.

Si sta eseguendo phpinfo() tramite il browser, quindi si ottiene /etc/php5/apache2/php.ini come risposta. L'esecuzione di php -r "phpinfo();" | grep "Loaded Configuration" dal terminale dovrebbe generare l'ini della CLI. Stessa funzione, il contesto cambia.

Il vantaggio di questo sistema è ovviamente quello di consentire diverse configurazioni a seconda del contesto. Per un esempio semplificato, si potrebbe desiderare di avere safe_mode in apache ma non è necessario in modalità CLI.

I percorsi .ini sono in realtà piuttosto inusuali. Normalmente, il .ini predefinito è solo php.ini e CLI .ini è chiamato php-cli.ini e risiedono nella stessa cartella.

Non sono esperto in materia, ma questa dovrebbe essere l'idea di base. Se qualcuno ha delle correzioni, sarei felice di sentirle.

+1

Yup. Hai capito bene. L'idea di base dietro i diversi file INI per la CLI e Apache è che si possono avere più server virtuali in esecuzione su un singolo sistema. Grazie per la tua risposta. –

+1

@HrishikeshChoudhari "L'idea di base dei diversi file INI per CLI e Apache è che è possibile avere più server virtuali in esecuzione su un singolo sistema." 100% non è il caso. La versione PHP della CLI di 'php.ini' è per la riga di comando di PHP. Il modulo Apache 'php.ini' è per il modulo Apache PHP. Due cose distinte e diverse. – JakeGould

Problemi correlati