How do I include a php.ini file in another php.ini file?

While PHP doesn't support directly including one php.ini file within another, you can achieve modular configuration through PHP's additional configuration directories feature. This approach allows you to split configurations across multiple .ini files.

Using Configuration Scan Directory

When compiling PHP from source, you can specify an additional directory for configuration files using the following compile option −

--with-config-file-scan-dir=PATH

The PATH parameter specifies the directory where PHP will scan for additional .ini files during startup.

How It Works

During PHP initialization, the engine will −

  • First load the main php.ini file
  • Then scan the specified directory for all .ini files
  • Load each .ini file in alphabetical order
  • Merge all configurations together

Example Directory Structure

You might organize your configuration files like this −

/etc/php/conf.d/
??? 10-opcache.ini
??? 20-mysql.ini
??? 30-redis.ini
??? 99-custom.ini

Checking Current Configuration

To see which configuration files are loaded, use the following PHP code −

<?php
echo "Main config file: " . php_ini_loaded_file() . "
"; echo "Additional config files:
"; print_r(php_ini_scanned_files()); ?>

Alternative Approaches

For runtime configuration management, consider −

  • Using ini_set() for dynamic configuration changes
  • Environment-specific configuration files loaded by your application
  • Configuration management through deployment scripts

Conclusion

While direct inclusion isn't possible, the configuration scan directory feature provides an effective way to modularize PHP settings. This approach enables better organization and easier maintenance of complex PHP configurations across different environments.

Updated on: 2026-03-15T08:45:14+05:30

516 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements