¿Qué es el PHP.INI de PHP?

¿Qué es el PHP.INI de PHP?

El PHP.INI es el archivo de configuración principal del intérprete PHP que permite definir cómo debe comportarse y ejecutar el código PHP en un servidor. Se trata del archivo de configuración más importante para personalizar el funcionamiento de PHP en cualquier instalación.

Este archivo contiene directivas que controlan aspectos fundamentales del intérprete de PHP como límites de memoria, tiempo máximo de ejecución, tamaños de archivo subido, configuración de sesiones, extensiones habilitadas y muchos otros parámetros que afectan al rendimiento, seguridad y comportamiento de PHP.

En un entorno de hosting traducional, el PHP.INI se encuentra en el servidor y permite configurar variables y cientos de otros parámetros que determinan cómo se ejecuta PHP. Sin embargo, en los hosting con cPanel de Raiola Networks que utilizan CloudLinux, el sistema funciona de manera diferente. CloudLinux no acepta modificaciones directas del PHP.INI por parte de los usuarios del hosting compartido, ya que esto supondría un riesgo de seguridad y estabilidad para el servidor. En su lugar, Raiola Networks ofrece dos alternativas para personalizar el comportamiento de PHP.

  • La primera es utilizar el panel de control de cPanel, que incluye una interfaz gráfica específica llamada "Seleccionar versión PHP" donde puedes ajustar los parámetros más importantes del intérprete directamente desde la interfaz gráfica del panel.

  • La segunda alternativa es utilizar directivas php_value en el archivo .htaccess de la raíz del hosting o de una carpeta concreta. Mediante las variables php_value, puedes configurar parámetros específicos de PHP utilizando la sintaxis php_value seguida del nombre de la variable y su valor

Es importante tener precaución al modificar estos valores, ya que configuraciones incorrectas pueden provocar errores en tu sitio web o consumo excesivo de recursos del servidor. Por ejemplo, establecer un memory_limit demasiado alto puede provocar bloqueos innecesarios de memoria, mientras que un max_execution_time muy bajo puede impedir que procesos reales se completen correctamente.

La configuración del PHP.INI o de los valores metidos en el .htaccess con el php_value se aplica a la versión de PHP que tienes configurada en tu hosting, por lo que si cambias de versión de PHP, deberás revisar que los parámetros configurados sigan siendo apropiados para la nueva versión.

Esto es un ejemplo de archivo PHP.INI, tendrías que ponerlo en la raíz de tu sitio web. He tratado de meter bastantes parámetros para que te sirva de ejemplo para ver qué parámetros puedes meter en el PHP.INI de tu hosting o servidor:

[PHP]
; Configuración básica de PHP
engine = On
short_open_tag = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = -1
disable_functions =
disable_classes =
zend.enable_gc = On
zend.exception_ignore_args = On
zend.exception_string_param_max_len = 15

; Configuración de errores
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
xmlrpc_errors = 0
xmlrpc_error_number = 0

; Límites de recursos
max_execution_time = 30
max_input_time = 60
max_input_nesting_level = 64
max_input_vars = 1000
memory_limit = 128M

; Manejo de archivos
file_uploads = On
upload_tmp_dir =
upload_max_filesize = 2M
max_file_uploads = 20

; Variables POST
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"

; Include paths
include_path = ".:/usr/share/php"

; Configuración de sesiones
session.save_handler = files
session.save_path = "/var/lib/php/sessions"
session.use_strict_mode = 1
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly = 1
session.cookie_secure = 0
session.cookie_samesite =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5

; Seguridad
allow_url_fopen = On
allow_url_include = Off
expose_php = Off
max_execution_time = 30
max_input_time = 60

; Configuración de fecha
date.timezone = "Europe/Madrid"

; Configuración de MySQL/MySQLi
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off

; MySQLi
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off

; PDO
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket =

; Opcache (si está habilitado)
opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1

; Configuración de mail
SMTP = localhost
smtp_port = 25
sendmail_path = /usr/sbin/sendmail -t -i

; Configuración adicional
default_socket_timeout = 60
auto_detect_line_endings = Off
user_agent = "PHP"

; Variables de entorno
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off

; Configuración de GD (si está habilitado)
gd.jpeg_ignore_warning = 1

; Configuración de cURL (si está habilitado)
curl.cainfo =

; Configuración de OpenSSL
openssl.cafile =
openssl.capath =

Estos mismos parámetros puedes utilizarlos con php_value en el archivo .htaccess.

En nuestros productos con RaiolaCP, como por ejemplo nuestros servidores VPS optimizados, puedes configurar PHP utilizando el archivo PHP.INI. Sin embargo, como has visto, en todos nuestros productos con cPanel y CloudLinux, debes utilizar los parámetros php_value en el archivo .htaccess de la raíz del sitio web.

Álvaro Fontela

Álvaro Fontela

Consultor WordPress, además de CEO y cofundador de Raiola Networks. Autor del libro "Curso Práctico de WordPress" y speaker en congresos de marketing digital.

Autor