What is the purpose of php.ini file ?
In this article, we will learn about the purpose of the php.ini file. At the time of PHP installation, php.ini was a special file provided as a default configuration file.
- It’s a very essential configuration file that controls what a user can or cannot do with the website.
- Each time PHP is initialized, the php.ini file is read by the system.
- Sometimes you need to change the behaviour of PHP at runtime, then this configuration file is to use.
- All the settings related to registering global variables, uploading maximum size, display log errors, resource limits, the maximum time to execute a PHP script and others are written in a file as a set of directives that helps in declaring changes.
- The php.ini file is the default configuration file for running applications that require PHP. It is used to control variables such as upload sizes, file timeouts, and resource limits.
- php.ini file is the configuration file. It is always checked when the server gets started or HTTP is restarted in the module and it configures the website to know what a user can do or can’t do with a website.
- It also helps with the administration of the web server easily.
Whenever some changes are made to the file, you need to restart your web server.
It helps in easy administration of the web with a server using these configuration files. We can also write our own custom configuration files.
To check the file path, use the following program:
<?php echo phpinfo(); ?>
Note: Keys in the file are case-sensitive, keyword values are not spaces and lines starting with a semicolon are ignored. The file is well commented on. The Boolean values are represented by On/Off, 1/0, True/False, Yes/No.
The file contains a set of directives with a set of respective values assigned to it. The values can be a string, a number, a PHP constant, INI constants, or an expression, a quoted string or a reference to a previously set variable. Expressions in the INI file are limited to bitwise operators or parentheses. Settings with a particular hostname will work under that particular host only.
Environment variables of php.ini file:
- memory_limit: This setting is done to show the maximum amount of memory a script consumes.
Important settings or common parameters of the php.ini file:
- enable_safe_mode = on Its default setting to ON whenever PHP is compiled. Safe mode is most relevant to CGI use.
- register_globals = on its default setting to ON, which means that the contents of EGPCS (Environment, GET, POST, Cookie, Server) variables are registered as global variables. But due to a security risk, the user has to ensure if it set OFF for all scripts.
- upload_max_filesize This setting is for the maximum allowed size for uploaded files in the scripts.
- upload_tmp_dir = [DIR] Don’t uncomment this setting.
- post_max_size This setting is for the maximum allowed size of POST data that PHP will accept.
- display_errors = off This setting will not allow showing errors while running a PHP project in the specified host.
- error_reporting = E_ALL & ~E_NOTICE: This setting has default values like E_ALL and ~E_NOTICE, which shows all errors except notices.
- error_prepend_string = [“”] This setting allows you to make different colors of messages.
- max_execution_time = 30 Maximum execution time is set to seconds for any script to limit the time on production servers.
- short_open_tags = Off To use XML functions, we have to set this option as off.
- session.save-handler = files You don’t need to change anything in this setting.
- variables_order = EGPCS This setting is done to set the order of variables as Environment, GET, POST, COOKIE, SERVER. The developer can change the order as per the need also.
- warn_plus_overloading = Off This setting issues a warning if + used with strings in the form of value.
- gpc_order = GPC This setting has been GPC Deprecated.
- magic_quotes_gpc = on This setting is done in the case of many forms used which submit to themselves or others and display form values.
- magic_quotes_runtime = Off If magic_quotes_sybase is set to On, this must be off. This setting escapes quotes.
- magic_quotes_sybase = Off If this setting is set off, it should be off. This setting escapes quotes.
- auto-prepend-file = [filepath] This setting is done when we need to automatically include() it at the beginning of every PHP file.
- auto-append-file = [filepath] This setting is done when we need to automatically include() it at the end of every PHP file.
- include_path = [DIR] This setting is done when we need to require files from the specified directories. Multiple directories are set using colons.
- ignore_user_abort = [On/Off] These settings control what will happen when the user clicks any stop button. The default value is that this setting doesn’t work on CGI mode, it works only on module mode.
- doc_root = [DIR] This setting is done if we want to apply PHP to a portion of our website.
- file_uploads = [on/off] This flag is set to ON if file uploads are included in the PHP code.
- mysql.default_host = hostname This setting is done to connect to MySQL default server if no other server host is mentioned.
- mysql.default_user = username This setting is done to connect to made a MySQL default username, if no other name is mentioned.
- mysql.default_password = password This setting is made to connect to the MySQL default password if no other password is mentioned.
Configuration of php.ini file: Whenever we install PHP, we can locate the configuration file inside the PHP folder. If using xampp, we can find the configuration file in one or many versions, inside the path ‘\xampp\php’.
Note: Other versions of this file are php.ini-development and php.ini-production. The most preferred one is the php.ini-development file.