Where can I find php.ini?

PhpLinuxPhp Ini

Php Problem Overview


A few years ago I installed Apache 2.2x and PHP 5.3.1 on a Linux server I maintain. I used .tar.gz's and built them as instructed (instead of rpms and what-have-you). And all was fine.

Today I need to install this which seems like a PHP library. I went through all the steps up to make install, and I found ibm_db2.so in $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so.

The great catch is the last step is to configure file php.ini, but there aren't any php.ini files on my system. Horror of horrors. PHP works fine, except of course for this newfangled ibm_db2 thingamajig that I want to use so somebody can use a GUI to tinker with DB2. (I tried a small PHP script which fails and indicates that the ibm_db2 functions are not available.)

I have to deal with PHP once every few years, so please enlighten me at a very basic level about what I could do to enable web-based GUI access to DB2.

Php Solutions


Solution 1 - Php

On the command line execute:

php --ini

You will get something like:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini

That's from my local dev-machine. However, the second line is the interesting one. If there is nothing mentioned, have a look at the first one. That is the path, where PHP looks for the php.ini file.

You can grep the same information using phpinfo() in a script and call it with a browser. It’s mentioned in the first block of the output. php -i does the same for the command line, but it’s quite uncomfortable.

Solution 2 - Php

The best way to find this is:

Create a PHP (.php) file and add the following code:

<?php phpinfo(); ?>

and open it in a browser. It will show the file which is actually being read!

Updates by the OP:

  1. The previously accepted answer is likely to be faster and more convenient for you, but it is not always correct. See comments on that answer.
  2. Please also note the more convenient alternative <?php echo php_ini_loaded_file(); ?> mentioned in this answer.

Solution 3 - Php

This works for me:

php -i | grep 'php.ini'

You should see something like:

Loaded Configuration File => /usr/local/lib/php.ini

P.S.

To get only the php.ini path, use:

php -i | grep /.+/php.ini -oE

Solution 4 - Php

In a command window, type

php --ini

It will show you the path something like:

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini

If the above command does not work then use this:

echo phpinfo();

Solution 5 - Php

Use the following command to find the php.ini file path on Linux.

locate php.ini

Output:

/etc/php.ini
/etc/php.ini.rpmnew
/usr/share/doc/php-common-5.4.45/php.ini-development
/usr/share/doc/php-common-5.4.45/php.ini-production

Or try this other way:

php --ini

It shows the path result.

Solution 6 - Php

This command should help you to find it

php -r "phpinfo();" | grep php.ini

Solution 7 - Php

PHP comes with two native functions to show which configuration file is loaded:

Depending on your setup, Apache and CLI might use different .ini files. Here are the two solutions:

Apache:

Just add the following in a PHP (.php) file and open it in your browser:

print php_ini_loaded_file();
print_r(php_ini_scanned_files());

CLI:

Copy-paste in your terminal:

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'

Solution 8 - Php

phpinfo();

will tell you its location, or from the command line

php -i

Solution 9 - Php

Run this in the command line:

php -r "echo php_ini_loaded_file().PHP_EOL;"

Solution 10 - Php

Try one of these solutions

  1. In your terminal, type find / -name "php.ini"

  2. In your terminal, type php -i | grep php.ini. It should show the file path as "Configuration File (php.ini) Path => /etc"

  3. If you can access one of your PHP files, open it in a editor (Notepad) and insert phpinfo(); after <?php on a new line. This will tell you the php.ini location.

  4. You can also talk to PHP in interactive mode. Just type php -a in the terminal and type phpinfo(); after the PHP interpreter initiated.

Solution 11 - Php

find / -name php.ini

Hey... it worked for me!

Solution 12 - Php

You can get more information about your configuration files using something like:

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini

Solution 13 - Php

For SAPI: php-fpm

There isn't any need to create a php.info file (it is not a good policy to leave it for the world to read anyway). On the command line:

php-fpm -i | more

Somewhere in its output, it will show this line:

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

Here is a more complete explanation: How to Figure out Your PHP Configuration Parameters without info.php

Solution 14 - Php

according to this answer, as of PHP 7 the regular php.ini file was removed and added with php.ini-production and php.ini-devlopment.

so instead of php.ini which does not exist in my case (I've installed php 8.1), use php.ini-production and it's located in php installation folder (something like: C:\PHP-8.1.5) and create a file and name it php.ini and then copy contents of php.ini-production in this new php.ini.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionnecromancerView Question on Stackoverflow
Solution 1 - PhpKingCrunchView Answer on Stackoverflow
Solution 2 - PhpTejasView Answer on Stackoverflow
Solution 3 - PhpcoderamaView Answer on Stackoverflow
Solution 4 - PhpbibliophilsagarView Answer on Stackoverflow
Solution 5 - PhpSakthi KarthikView Answer on Stackoverflow
Solution 6 - PhpRimantas JacikeviciusView Answer on Stackoverflow
Solution 7 - PhpCreaforgeView Answer on Stackoverflow
Solution 8 - Phpuser557846View Answer on Stackoverflow
Solution 9 - PhpMaxView Answer on Stackoverflow
Solution 10 - PhpcherankrishView Answer on Stackoverflow
Solution 11 - PhpBanned_UserView Answer on Stackoverflow
Solution 12 - PhpMike PurcellView Answer on Stackoverflow
Solution 13 - PhpNightKnight on Cloudinsidr.comView Answer on Stackoverflow
Solution 14 - PhpZahraView Answer on Stackoverflow