views:

21

answers:

1
+2  Q: 

2 php.ini files

Hi,

I have found that:

When I type the following on terminal:

php -i | grep php.ini

I get the output:

The Loaded Configuration file is  @ /etc/php5/cli/php.ini

However, from phpinfo(), I get to see:

The loaded ini file is @ /etc/php5/apache2/php.ini

Which one of these is working right now ? How is it possible to have 2 INI files ?

+3  A: 

Depends on where you are running PHP from. If you run it from command line, it uses the cli/php.ini and apache2/php.ini when run through apache.

You are executing phpinfo() through the browser, hence you get /etc/php5/apache2/php.ini as the answer. Running php -r "phpinfo();" | grep "Loaded Configuration" from the terminal should output the CLI ini. Same function, context changes.

The advantage of this system is obviously to allow different configurations depending on the context. For a simplified example, you might want to have safe_mode on in apache but it's unnecessary in CLI mode.

Your .ini paths are actually quite unusual. Normally, the default .ini is just php.ini and CLI .ini is called php-cli.ini and they reside in the same folder.

I'm no expert on the subject but this should be the basic idea. If anyone has any corrections, I'd be happy to hear them.

Tatu Ulmanen
Yup. You got it right. The basic idea behind different INI files for the CLI and Apache is that one can have multiple virtual servers running on a single system. Thanks for your answer.
Hrishikesh Choudhari