Domanda

ho scoperto che:

Quando si digita il seguente sul morsetto:

php -i | grep php.ini

Ho l'uscita:

  

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

Tuttavia, da phpinfo(), riesco a 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?

È stato utile?

Soluzione

dipende da dove si esegue PHP da. Se lo si esegue da linea di comando, utilizza il cli/php.ini e apache2/php.ini quando eseguito attraverso apache.

si sta eseguendo phpinfo() attraverso il browser, quindi si ottiene /etc/php5/apache2/php.ini come la risposta. Esecuzione php -r "phpinfo();" | grep "Loaded Configuration" dal terminale deve emettere la CLI ini. La stessa funzione, i cambiamenti di contesto.

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

I tuoi percorsi .ini sono in realtà abbastanza inusuale. Normalmente, il .ini di default è solo php.ini e CLI .ini si chiama php-cli.ini e risiedono nella stessa cartella.

Non sono un esperto in materia, ma questo dovrebbe essere l'idea di base. Se qualcuno ha qualche correzione, sarei felice di sentire loro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top