¿Qué es php.ini?

Cómo crear y usar tu propio archivo php.ini en el alojamiento compartido (suPHP).

Cada usuario puede crear su propio archivo php.ini y colocarlo en el directorio donde residen sus scripts. Esto te permite ajustar la configuración de PHP sin tener que contactar con el soporte cada vez.

Proteger php.ini del acceso público

Si colocas php.ini dentro de public_html, asegúrate de bloquear el acceso público. Abre (o crea) el archivo .htaccess en la raíz de tu sitio — por ejemplo, /home/user/public_html, donde user es tu nombre de usuario de cPanel — y añade el siguiente bloque:

<Files php.ini>
order allow,deny
deny from all
</Files>

Esto impide que alguien pueda ver tu archivo php.ini directamente en el navegador.

Importante

Cuando PHP se ejecuta como handler CGI o suPHP, no puedes usar php_flag, php_admin_flag, php_value ni directivas similares dentro de .htaccess. Hacerlo producirá un 500 Internal Server Error.

Aplicar php.ini a todo el sitio

Por defecto, un php.ini personalizado solo afecta al directorio en el que se encuentra. Para aplicarlo a todo el sitio, añade una de las siguientes líneas en tu archivo .htaccess — justo antes del bloque <Files> anterior — según tu servidor:

Para la mayoría de los servidores:

suPHP_ConfigPath /home/user/public_html

Para hostde6 y hostde15:

lsapi_phpini /home/user/public_html

Sustituye user por tu nombre de usuario real de cPanel.

Referencia de permisos de archivos

Permiso Significado
644 El propietario puede escribir; los demás solo pueden leer (valor predeterminado para archivos)
444 Solo lectura para todos, incluidos tus propios scripts
755 Permisos estándar para carpetas (no se necesitan cambios)

Con permisos 644, solo los scripts que se ejecutan bajo tu propia cuenta pueden escribir en los archivos — nadie más. Establecer los archivos en 444 añade una capa adicional de seguridad al impedir que incluso tus propios scripts los modifiquen, aunque esto es completamente opcional.

Como regla general: no cambies los permisos de los archivos durante la instalación de scripts, aunque las instrucciones te indiquen lo contrario. Puedes omitir sin problema cualquier paso CHMOD.

Nuestros servicios y productos

HostingFunciona en discos NVMe ultrarrápidos. Apto para sitios web de cualquier complejidad.
Pedir
VPSParámetros ajustables y configuración flexible del SO. Administración gratuita incluida.
Pedir
Servidores dedicadosDisponibles diversas configuraciones Supermicro con procesadores Intel y AMD.
Pedir

Ejemplo de php.ini con los parámetros más habituales

Sintaxis: directiva = valor — las líneas que comienzan por ; son comentarios y PHP las ignora.

  • safe_mode = Off
  • disable_functions = — bloquear funciones PHP específicas por motivos de seguridad
  • max_execution_time = 30 — tiempo máximo de ejecución de un script en segundos
  • memory_limit = 16M — memoria máxima que puede consumir un script
  • error_reporting = E_ALL & ~E_NOTICE — mostrar todos los errores excepto los avisos
  • display_errors = On — mostrar los errores en el navegador (útil para depuración)
  • variables_order = "EGPCS" — orden en que PHP registra las variables: E = integradas, G = GET, P = POST, C = Cookies, S = Sessions
  • register_globals = On — hacer accesibles las variables GET/POST/Cookie/Session como variables normales
  • post_max_size = 55M — tamaño máximo de los datos POST aceptados
  • magic_quotes_gpc = On — escapar automáticamente las comillas de las entradas POST/GET/Cookie
  • file_uploads = On — permitir la subida de archivos
  • ;upload_tmp_dir = — directorio temporal para los archivos subidos (créalo si configuras este parámetro)
  • upload_max_filesize = 5M — tamaño máximo de un archivo subido individualmente
  • session.save_handler = files — almacenar los datos de sesión en archivos
  • session.save_path = /tmp — directorio para los archivos de sesión (créalo si es necesario)
  • session.use_cookies = 1 — usar cookies para gestionar las sesiones
  • session.name = PHPSESSID — nombre de la cookie usada para identificar la sesión
  • session.auto_start = 0 — no iniciar una sesión automáticamente en cada solicitud
  • session.cookie_lifetime = 0 — la cookie de sesión expira al cerrar el navegador
  • session.use_trans_sid = 1 — añadir automáticamente el ID de sesión a los enlaces (alternativa si las cookies están desactivadas)

Ayuda

¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!

¿Necesitas ayuda?Nuestros ingenieros te ayudarán gratuitamente con cualquier pregunta en minutosContáctanos