Saltar al contenido
Contenido
Solución de problemas

Extensiones y Configuraciones de PHP

Traducción automática. El original en inglés está disponible.

Qué versiones y extensiones de PHP ofrece el alojamiento web de KapsuleHost para sitios WordPress, WooCommerce y PHP, qué ajustes puede cambiar usted mismo y por qué un cambio puede tardar hasta cinco minutos en aparecer.

Los sitios estáticos, de Node.js y de Python no ejecutan PHP. Todo lo relacionado con PHP para un sitio se encuentra en un solo lugar: Sitios web, haga clic en el sitio, Configuración y luego PHP. Esa página contiene el selector de versión, los ajustes que puede cambiar, un ejecutor de Composer y el registro de errores de PHP.

La página de PHP para un sitio en KPanel, con el selector de versión y los ajustes que puede cambiar

Elegir una versión de PHP

Hay cuatro versiones seleccionables: 8.4, 8.3, 8.2 y 8.1. Los sitios nuevos usan la 8.3 de forma predeterminada.

Elija la versión más reciente que su software realmente admita. Las versiones más nuevas de PHP son notablemente más rápidas y reciben correcciones de seguridad durante más tiempo. La razón para no pasar directamente a la más reciente es la compatibilidad: un plugin antiguo o un fragmento de código personalizado escrito hace años puede fallar por completo en una versión con la que nunca se ha probado.

Para cambiarla, seleccione la versión y haga clic en Aplicar versión. El cambio surte efecto de inmediato, sin necesidad de reiniciar nada por su parte y sin tiempo de inactividad.

Cambie la versión de PHP primero en el entorno de pruebas (staging), navegue por el sitio y solo después cámbiela en producción. Si debe hacerlo en producción, hágalo cuando pueda estar atento, y tenga en cuenta que volver a la versión anterior es cuestión de un clic. Consulte Entornos de prueba (Staging).

Si un cambio de versión rompe el sitio, vuelva a la versión anterior y revise el registro. El error indicará el nombre del archivo que no pudo ejecutarse. Consulte Cambiar la versión de PHP y Registros de errores.

Ajustes que puede cambiar

La página de PHP expone cinco ajustes como menús desplegables. Son los que, en la práctica, realmente causan problemas, por eso son los que se muestran.

AjusteValor predeterminadoValores disponiblesQué controla
memory_limit256M128M, 256M, 512M, 1024M, 2048MCuánta memoria puede usar una solicitud
max_execution_time3030, 60, 120, 300, 600Cuántos segundos puede ejecutarse una solicitud
upload_max_filesize64M16M, 32M, 64M, 128M, 256MEl archivo individual más grande que se puede subir
post_max_size65M17M, 33M, 65M, 129M, 257MEl envío de formulario total más grande
max_input_vars30001000, 3000, 5000, 10000Cuántos campos puede contener un envío

Cuál necesita según el caso:

  • Las subidas fallan por encima de cierto tamaño: aumente upload_max_filesize, y post_max_size junto con él.
  • Un formulario grande o un creador de páginas pierde campos al guardar: aumente max_input_vars. Este caso es invisible y exasperante, porque no se produce ningún error. Los campos adicionales simplemente se descartan en silencio.
  • Una página se interrumpe a mitad de camino sin ningún error: aumente memory_limit. Consulte Límite de memoria de WordPress.
  • Una importación o exportación larga agota el tiempo de espera: aumente max_execution_time, y considere ejecutar el proceso desde la línea de comandos. Consulte WP-CLI.

post_max_size debe ser mayor que upload_max_filesize, porque la subida viaja dentro de la publicación. Si elige una combinación en la que no lo es, la plataforma corrige post_max_size automáticamente al alza. Por eso puede ver un valor que usted no eligió.

Por qué un cambio puede tardar hasta cinco minutos

Esta es la fuente de confusión más común en esta página, así que vale la pena ser precisos.

Sus ajustes se escriben en un archivo .user.ini en el directorio raíz de documentos de su sitio. PHP lee ese archivo y luego lo almacena en caché durante 300 segundos, es decir, cinco minutos. Hasta que esa caché caduca, PHP sigue usando los valores anteriores.

Por eso, después de guardar un cambio:

  • La página seguirá mostrando el límite anterior durante un máximo de cinco minutos.
  • phpinfo() seguirá mostrando el límite anterior durante un máximo de cinco minutos.
  • Una actualización forzada no ayuda. Tampoco ayuda borrar la caché del navegador.
  • No necesita reiniciar nada, y no puede hacerlo. Simplemente espere.

Si han pasado más de cinco minutos y el valor no ha cambiado, entonces hay un problema real y vale la pena abrir un ticket.

Editar .user.ini usted mismo

Puede editar .user.ini directamente por SFTP o SSH si lo prefiere, o si necesita una directiva que el panel no expone. Se encuentra en el directorio raíz de documentos de su sitio. Consulte Acceso por SFTP.

El formato es una directiva por línea:

memory_limit = 512M
max_execution_time = 120

Hay dos limitaciones importantes sobre lo que .user.ini puede hacer:

Solo funciona con directivas que PHP permite establecer por directorio o por usuario. Las cinco anteriores cumplen esa condición. Las directivas que solo pueden establecerse a nivel del sistema, como disable_functions o cargar una extensión con extension=, se ignoran en un archivo .user.ini. No darán ningún error, simplemente no harán nada, por eso la gente pasa toda una tarde intentando resolverlo.

El panel solo lee de vuelta claves simples. Las directivas que contienen un punto, como opcache.enable o date.timezone, son respetadas por PHP pero no aparecerán en el formulario del panel. Si establece una manualmente y después cambia algo a través del panel, revise el archivo después.

El alojamiento web de KapsuleHost usa nginx, no Apache. Los archivos .htaccess no son leídos por nadie. Las directivas de PHP colocadas en un archivo .htaccess, como php_value memory_limit, no hacen absolutamente nada aquí. Use .user.ini o el panel en su lugar. Consulte WordPress y .htaccess.

Qué extensiones están disponibles

La versión estándar es amplia e incluye todo lo que WordPress, WooCommerce y la mayoría de las aplicaciones PHP requieren.

Bases de datos: mysqli, pdo_mysql, sqlite3, pdo_sqlite Imágenes: gd, imagick, exif Caché: Zend OPcache, redis, memcached Texto y configuración regional: mbstring, iconv, intl, gettext, ctype XML y datos: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json Red: curl, soap, sockets, ftp, openssl Matemáticas y criptografía: bcmath, sodium, hash, random Archivos y sistema: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

Una diferencia entre versiones que vale la pena conocer: la extensión imap está presente en la 8.3 y versiones anteriores, pero no en la 8.4, porque se eliminó del propio PHP en esa versión. Si tiene una aplicación que todavía la necesita, manténgase en la 8.3 o migre esa aplicación a una biblioteca de correo moderna.

No instalados: controladores de PostgreSQL, MongoDB, Xdebug, mcrypt, y cargadores de código comerciales como ionCube y SourceGuardian.

No puede activar ni desactivar extensiones usted mismo desde el panel. Si su aplicación necesita algo que no está en la lista, abra un ticket y describa lo que está ejecutando. Que se pueda añadir o no depende de la extensión. Consulte Abrir un ticket de soporte.

Comprobar qué está realmente cargado

En lugar de suponer:

  • En WordPress: Tools, luego Site Health, luego Info, luego Server. Allí se indica la versión de PHP y los límites correspondientes.
  • Por SSH: php -v para la versión y php -m para las extensiones cargadas. Consulte Añadir claves SSH.

No deje un archivo phpinfo() en la raíz web de su sitio. Publica sus rutas, sus extensiones y su configuración a cualquiera que lo encuentre, y los escáneres automatizados buscan exactamente ese nombre de archivo. Si crea uno para comprobar algo, elimínelo inmediatamente después.

Guías relacionadas

¿Le ha resultado útil?

¿Es usted una IA? Lea esta página en Markdown

Artículos relacionados

Mi sitio web no carga: lista de verificación de diagnósticoTrabaje estos pasos en orden. Cada paso identifica la causa o la descarta. La mayoría de los problemas se resuelven en el paso 5.…Sitio caído: relacione lo que ve con la causaEste es el árbol de diagnóstico, común a todos los productos, para un sitio que no carga. KapsuleHost ofrece varios productos, y la forma más rápida de…Uso de Cloudflare u otro Proxy con KapsuleHostLo que gana y lo que pierde | Lo que gana | Lo que pierde | |---|---| | Su firewall, reglas de bots y limitación de velocidad | La dirección IP real del…Lentitud del sitio y límites de recursosQué limita realmente su plan de alojamiento, qué ocurre cuando alcanza cada límite y cómo averiguar si un sitio lento tiene un problema de recursos o de código.…

¿Sigue sin resolverlo?

Pregunte a Kora, que conoce su cuenta, o contacte con nuestro equipo.

ContáctenosContactar soporte