For a PHP developer, making changes in the PHP.ini config file can be quite a problem. The issue is that the location of the PHP.ini config file is different in depending on the operating system and environment, and it can take a bit of time to figure out it’s location.

In this article, we’ll discuss where the PHP.ini config file is located in:

  • Linux distributions
  • Windows OS
  • Local servers
  • Live server
  • Shared hosting

What is the PHP.ini File?

PHP.ini is the default configuration file used to run applications that require PHP. It’s where we declare (and store) the changes and control variables such as the file size, and resource limit.

Method 1: Create a Script to Display the Location of the PHP.ini File

Whether you’re running the file on the live server or localhost, the method of creating a new file is one of the most popular and proven ways to find the PHP.ini file.

To begin, create a new file in your document root with a .php extension (for example phpinfo.php) with the following line of code:

<?php phpinfo(); ?>

Save and upload the file to your main HTML directory.

In your favorite browser, load the file by accessing it at https://website.com/phpinfo.php

A complete list of all your PHP information will be displayed on the web page such as your PHP version, system details, compiler, server API, etc.

Your PHP.ini file is usually located in one of the following sections:

  • Configuration File Path
  • Loaded Configuration File

As mentioned, the Configuration file path is the default one of the PHP.ini files. The Loaded Configuration File section applies when your PHP installation is used as a module.

Method 2: Finding PHP.ini File on GoDaddy

In GoDaddy servers, the PHP.ini file is usually located in /web/config/php.ini. The .ini extension might be followed by the PHP version.

You cannot access or edit your PHP.ini file using FTP or the File Manager in the control panel. To fix this, you need to create a new PHP.ini file and upload it to the HTML directory. The new PHP.ini file can be created using the file manager or FTP in your HTML directory or the GoDaddy servers.

Note: Always upload the initialization (.ini) file to the root directory of your site.

Also, on GoDaddy, if you are running PHP version 4, name your initialization file php.ini and if you are running PHP version 5, then name your initialization file php5.ini.

Once you’ve created the new file, run your phpinfo.php script and you will see the path to the file you just uploaded. You can further edit this file to make changes to your PHP settings.

Method 3: Finding PHP.ini File on Linux

There are two methods of finding the PHP.ini file on Linux, locate command and grep command.

GREP Command

In most servers, you can get information on PHP by running the php -i command. This is similar to using the phpinfo(); function. We’ll use the php -i command along with the grep utility to find info on PHP.ini.

We’ll do this by searching through the output from PHP.ini for the text Loaded Configuration File, and on that like we should find information on PHP.ini.

To do this run following command:

php -i | grep "Loaded Configuration File"

Here is my output on a server I just deployed, with PHP 7.4 installed:

Loaded Configuration File => /etc/php/7.4/cli/php.ini

If you don’t get any result from running the command, then also try:

php -i | grep "Configuration File"

The output on the same server:

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

Locate Command

You can use this command if you’ve already installed and updated the mlocate. If it isn’t installed then run the following command to install it:

sudo apt update && sudo apt install mlocate

mlocate is a more secure version of the locate utility in Linux. It only shows files accessible to the user. Simply put, it offers improved speed over the find tool by searching a pre-constructed database file rather than the file system.

One you’ve installed the mlocate, proceed by the running the following command to find the PHP.ini config file:

locate php.ini

It will give you a list of PHP.ini files. Edit one of those and re-start the web server and check if the required changes have been implemented.

Method 4: Finding PHP.ini File on Windows

In Windows, you can find the PHP.ini file by running the following command:

C:\> php -i | findstr /:c "Loaded Configuration File"

The commands will retrieve something similar to the following result:

Loaded Configuration File => /etc/php/7.2/cli/php.ini

There are three kinds of configuration files you should be aware of:

  • CLI
  • Apache
  • Nginx or Apache with PHP-FPM

The following config files are available on both Windows and Linux servers.

Note: In the following examples we’ve replaced part of the PHP version number with X. When locating PHP in your environment please replace 7.X with the actual PHP version on your machine, such as PHP 7.0, PHP 7.1, PHP 7.3, PHP 7.4, and so on.

CLI

The first PHP.ini file is for the PHP CLI program. Changes to the following config file will only affect PHP as it runs in the terminal. There will be no effect on the web server. This config file is located at /etc/php/7.X/cli/php.ini.

Apache

/etc/php/7.X/apache/php.ini is the config file used by APACHE plugins. This is the file you edit to make changes in the PHP.ini config file if you’re using the APACHE web server.

Nginx or Apache with RHP-FPM

/etc/php/7.X/fpm/php.ini is the FastCGI-compatible wrapper for processing PHP. You need to edit this file if you’re using the Nginx server or APACHE with PHP-FPM.

Method 5: Finding PHP.ini File on a Local Server

In a local server, the location of the PHP.ini file depends on the server environment you’re using. We’ll cover the most popular local server environments in PHP like LAMPP and WAMP.

WAMP

Finding a PHP.ini file in the WAMP server is easy. Locate the WAMP server icon and go to PHP -> PHP.ini.

XAMPP

XAMPP is a little complicated. Run your XAMPP installation and right-click on the Config button (in line with the APACHE module) and you’ll find the PHP.ini file in the dropdown menu.

Method 6: Finding PHP.ini File on Live server

The location of the PHP.ini file usually depends on your service provider.

In this section, we’ll cover the common way to navigate it in most liver servers. GoDaddy was a kind of special case and so we’ve already covered it. The PHP.ini file can be found typically in the wp-admin folder.

cPanel

To locate the PHP.ini file in the cPanel, open your file manager, and navigate to your root directory. You’ll find the config file somewhere in the bottom. Make sure that the checkbox for show hidden files is checked.

The root directory is the top-level directory that is one level up from your main public_html directory.

Method 7: Finding PHP.ini File in Shared Hosting

Sadly, you can’t access or edit the PHP.ini file in shared hosting. What you can do is specify the required changes in your .htaccess file in the following pattern:

php_value name value

Here, php_value remains constant and the name represents the name of the PHP property you want to change. The same goes for the value too. For example, the following line will change the maximum uploaded file size to 10MB:

php_value uplaod_max_filesize 10M

Restart the Web Server after the Changes

Once you’ve made the changes (at least one change), you must restart the server. Otherwise, the changes will not be implemented.

On Linux, run the following command to restart:

/etc/init.d/httpd restart

On the WAMP server, go to the server icon in the toolbar and choose ‘Restart all services’.

On the XAMPP server, go to the main dashboard and click the stop button in line with the APACHE module and then click the start button again.

Takeaway

PHP.ini is one of the most important config files on your server. We’ve tried to cover the location of the PHP.ini file in most of the common server environments and systems. We’ll add more solutions later on!

If your issue is still unresolved, please leave a comment and we’ll find and add a solution in the updated article.

Categories: Linux Tutorials