- [How To] find php.ini file location
- Table of Contents
- Using the phpinfo() Function
- Using the Command Line
- Checking with Your Hosting Provider
- Looking for the Default Location
- Using the locate Command
- Using the find Command
- Conclusion
- Where is my PHP php.ini Configuration File Located?
- Method 1
- Method 2
- CLI
- Apache
- Nginx or Apache with PHP-FPM
- Method 3
- Editing php.ini in Linux
- Apache
- Nginx or Apache with PHP-FPM
- Older Versions
- No replies yet
- 2 replies
- Leave a reply Cancel reply
- How to find the php.ini file used by the command line?
- What is php.ini
- Where is php.ini file located by default
- How can I find the php.ini file from command line
- php –ini
- php-config –ini-dir
- php -i and grep
- Conclusions
[How To] find php.ini file location
If you are a Linux/Unix user who is working with PHP, you may need to edit the php.ini file at some point in time. But where do you find this file? In this article, we will discuss different ways to locate the php.ini file on Linux/Unix servers.
Table of Contents
Using the phpinfo() Function
The phpinfo() function is a great tool for checking your PHP configuration settings. It can also help you find the location of the php.ini file on your server. Here are the steps to follow:
- Create a new PHP file with the following code:
Using the Command Line
If you have access to the command line on your server, you can use the following command to find the location of the php.ini file:
This will display the location of the php.ini file on your server.
Checking with Your Hosting Provider
If you are on a shared hosting plan, you may not have access to the php.ini file. In this case, you can contact your hosting provider to find out the location of the file.
Looking for the Default Location
If you cannot find the php.ini file using the methods above, you can try looking for the default location. On Windows, the php.ini file is typically located in the Windows directory, such as C:\windows or C:\winnt. On Linux/Unix, it is typically located in /etc/ or /usr/local/lib/.
Using the locate Command
The locate command is a fast way to search for files on your server. You can use the following command to locate the php.ini file:
This will display a list of all files on your server that match the search term “php.ini”.
Using the find Command
The find command is another way to search for files on your server. You can use the following command to find the php.ini file:
This will search your entire server for the file named “php.ini” and display the location of the file.
It is important to note that you may have multiple php.ini files on your server. Make sure you are editing the correct one.
Conclusion
Locating the php.ini file on Linux/Unix servers may seem like a daunting task, but there are several ways to find it. You can use the phpinfo() function, the command line, check with your hosting provider, or look for the default location. In addition, you can use the locate or find command to search for the file. Once you have found the file, you can make the necessary changes to customize your PHP environment to suit your needs.
Where is my PHP php.ini Configuration File Located?
In this article, we will guide you on a treasure hunt to find the php.ini configuration file, unravel its mysteries, and unlock the full capabilities of your PHP environment. Whether you are a seasoned PHP developer or a newcomer to the world of web development, understanding the ins and outs of this essential configuration file will make your journey smoother and your projects more efficient. So, let’s embark on this exciting quest to locate and master the php.ini file!
Method 1
One way to find out exactly which php.ini file your web sever is using is by creating a new PHP file in document root called info.php .
Load this file in your browser, press CTRL + F (or Command + F on Mac) and search for “Loaded Configuration File”. You should see something like
This will tell you the exact location of the php.ini file you want to edit.
Method 2
In Linux, run this command to locate the PHP.ini configuration file.
Or in Windows Command Line:
The result should be something like this:
In the above example, we can see that the PHP install is located in /etc/php/8.1 . Note that there are three different configuration files you should we aware of:
CLI
/etc/php/8.1/cli/php.ini is for the CLI PHP program. Changes to this config file will only affect PHP as it runs in the terminal – it will NOT affect the web server.
Apache
/etc/php/8.1/apache2/php.ini is for the PHP plugin used by Apache. This is the one you need to edit if you are using the Apache web server.
Nginx or Apache with PHP-FPM
/etc/php/8.1/fpm/php.ini is a fastcgi-compatible ‘wrapper’ for PHP processing. This is the one you need to edit if you’re using the Nginx web server or Apache with PHP-FPM.
Method 3
Using the locate command in Linux,. If it’s not already installed, run sudo apt update && sudo apt install mlocate .
You should see a list of php.ini files here. Try editing one of them and restarting you web server to see if makes the required changes.
Editing php.ini in Linux
Apache
On Apache, php.ini is usually located in /etc/php/8.1/apache2/php.ini . Replace 8.1 with your own version, e.g, php5.6 , php7.4 , etc.
However, if you are using PHP FPM, it may be located in /etc/php/8.1/fpm/php.ini . Replace 8.1 with your own version, e.g, php5.6 , php7.4 , etc.
To save file and exit, press CTRL + X , press Y and then press ENTER
You must restart Apache after altering php.ini .
If you are using PHP-FPM, you must restart that service. Replace php8.1 with your own version, e.g, php5.6 , php7.4 , etc.
Nginx or Apache with PHP-FPM
Nginx uses PHP FPM and php.ini is usually located in /etc/php/8.1/fpm/php.ini . Replace 8.1 with your own version, e.g, php5.6 , php7.4 , etc.
Save and exit (press CTRL + X , press Y and then press ENTER )
You must restart Nginx after altering php.ini .
Older Versions
For versions of Ubuntu lower than 16.04, /etc/php/5.6/ , /etc/php/7.0/ , /etc/php/7.1/ , and so on, are replaced by /etc/php5/ and so on. Otherwise, these paths remain accurate.
Let me know if this helped. Follow me on Twitter, Facebook and YouTube, or 🍊 buy me a smoothie.
p.s. I increased my AdSense revenue by 200% using AI 🤖. Read my Ezoic review to find out how.
No replies yet
Join the full discussion at the DevAnswe.rs Forums →
2 replies
Leave a reply Cancel reply
Very good… this information saved me!
How to find the php.ini file used by the command line?
There are a few ways to locate php.ini file by command line on Linux Ubuntu, Linux Mint, and other Linux distributions. Some of the options showed here are also compatible with Windows, specially usin WSL.
What is php.ini
The php.ini file is the configuration file that is read when PHP starts up. For the server module versions of PHP, this happens only once when the web server is started. For the CGI and CLI versions, it happens on every invocation.
It is the main place where you declare changes to your PHP settings. The server is already configured with standard settings for PHP, which your site or application will use by default. Unless you need to change one or more settings, there is no need to create or modify a php.ini file.
Where is php.ini file located by default
The php.ini file is searched for in these locations (in order):
- SAPI module specific location (PHPIniDir directive in Apache 2, -c command line option in CGI and CLI)
- The PHPRC environment variable.
- The location of the php.ini file can be set for different versions of PHP. The root of the registry keys depends on 32- or 64-bitness of the installed OS and PHP. For 32-bit PHP on a 32-bit OS or a 64-bit PHP on a 64-bit OS use [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] for 32-bit version of PHP on a 64-bit OS use [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]] instead. For same bitness installation the following registry keys are examined in order: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], where x, y and z mean the PHP major, minor and release versions. For 32 bit versions of PHP on a 64 bit OS the following registry keys are examined in order: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x], where x, y and z mean the PHP major, minor and release versions. If there is a value for IniFilePath in any of these keys, the first one found will be used as the location of the php.ini (Windows only).
- [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] or [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], value of IniFilePath (Windows only).
- Current working directory (except CLI).
- The web server’s directory (for SAPI modules), or directory of PHP (otherwise in Windows).
- Windows directory (C:\windows or C:\winnt) (for Windows), or –with-config-file-path compile time option.
If php-SAPI.ini exists (where SAPI is the SAPI in use, so, for example, php-cli.ini or php-apache.ini ), it is used instead of php.ini . The SAPI name can be determined with php_sapi_name() (returns the type of interface between web server and PHP).
The Apache web server changes the directory to root at startup, causing PHP to attempt to read php.ini from the root filesystem if it exists.
How can I find the php.ini file from command line
php –ini
There is a simple option called —ini that you can use when run php command:
The output will show where is the php.ini used by command line, as well additional scanned configuration files:
Configuration File (php.ini) Path: /etc/php/7.4/cli Loaded Configuration File: /etc/php/7.4/cli/php.ini Scan for additional .ini files in: /etc/php/7.4/cli/conf.d Additional .ini files parsed: /etc/php/7.4/cli/conf.d/10-mysqlnd.ini, /etc/php/7.4/cli/conf.d/10-pdo.ini, /etc/php/7.4/cli/conf.d/15-xml.ini, /etc/php/7.4/cli/conf.d/20-bcmath.ini, /etc/php/7.4/cli/conf.d/20-exif.ini, /etc/php/7.4/cli/conf.d/20-gd.ini, /etc/php/7.4/cli/conf.d/20-gettext.ini, /etc/php/7.4/cli/conf.d/20-iconv.ini, /etc/php/7.4/cli/conf.d/20-intl.ini, /etc/php/7.4/cli/conf.d/20-json.ini, /etc/php/7.4/cli/conf.d/20-mbstring.ini, /etc/php/7.4/cli/conf.d/20-mysqli.ini, /etc/php/7.4/cli/conf.d/20-pdo_mysql.ini, /etc/php/7.4/cli/conf.d/20-pdo_pgsql.ini, /etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini, /etc/php/7.4/cli/conf.d/20-pgsql.ini, /etc/php/7.4/cli/conf.d/20-redis.ini, /etc/php/7.4/cli/conf.d/20-simplexml.ini, /etc/php/7.4/cli/conf.d/20-sockets.ini, /etc/php/7.4/cli/conf.d/20-sqlite3.ini, /etc/php/7.4/cli/conf.d/20-xmlreader.ini, /etc/php/7.4/cli/conf.d/20-xmlwriter.ini, /etc/php/7.4/cli/conf.d/20-xsl.ini, /etc/php/7.4/cli/conf.d/20-zip.ini, /etc/php/7.4/cli/conf.d/xdebug.ini
php-config –ini-dir
Using php-config you can list only the path where the main PHP configuration file is located:
The output is something like:
php -i and grep
The command php -i shows a complete phpinfo() result. You can find all configurations and apply grep command to filter only the .ini configuration file:
php -i | grep 'Configuration File'
Or in Windows you can use find instead:
php -i | find/i"configuration file"
The result to both command will be similar to:
Configuration File (php.ini) Path => /etc/php/7.4/cli Loaded Configuration File => /etc/php/7.4/cli/php.ini
Finally you can use grep to filter all lines of the phpinfo() that shows .ini :
The output will be similar to php -i command:
Configuration File (php.ini) Path: /etc/php/7.4/cli Loaded Configuration File: /etc/php/7.4/cli/php.ini Scan for additional .ini files in: /etc/php/7.4/cli/conf.d Additional .ini files parsed: /etc/php/7.4/cli/conf.d/10-mysqlnd.ini, /etc/php/7.4/cli/conf.d/10-pdo.ini, /etc/php/7.4/cli/conf.d/15-xml.ini, /etc/php/7.4/cli/conf.d/20-bcmath.ini, /etc/php/7.4/cli/conf.d/20-exif.ini, /etc/php/7.4/cli/conf.d/20-gd.ini, /etc/php/7.4/cli/conf.d/20-gettext.ini, /etc/php/7.4/cli/conf.d/20-iconv.ini, /etc/php/7.4/cli/conf.d/20-intl.ini, /etc/php/7.4/cli/conf.d/20-json.ini, /etc/php/7.4/cli/conf.d/20-mbstring.ini, /etc/php/7.4/cli/conf.d/20-mysqli.ini, /etc/php/7.4/cli/conf.d/20-pdo_mysql.ini, /etc/php/7.4/cli/conf.d/20-pdo_pgsql.ini, /etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini, /etc/php/7.4/cli/conf.d/20-pgsql.ini, /etc/php/7.4/cli/conf.d/20-redis.ini, /etc/php/7.4/cli/conf.d/20-simplexml.ini, /etc/php/7.4/cli/conf.d/20-sockets.ini, /etc/php/7.4/cli/conf.d/20-sqlite3.ini, /etc/php/7.4/cli/conf.d/20-xmlreader.ini, /etc/php/7.4/cli/conf.d/20-xmlwriter.ini, /etc/php/7.4/cli/conf.d/20-xsl.ini, /etc/php/7.4/cli/conf.d/20-zip.ini, /etc/php/7.4/cli/conf.d/xdebug.ini
Conclusions
There are several ways to find php.ini file and other configurations files of your PHP installation using native commands on terminal.