# Extensiones y Configuraciones de PHP

Source: https://support.kapsulehost.com/es-es/php-extensions-and-ini

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](https://support.kapsulehost.com/help/screenshots/php-extensions-and-ini.2214ab47.webp)

## 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.

> **Tip:** 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)](https://support.kapsulehost.com/es-es/staging-environments).

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](https://support.kapsulehost.com/es-es/changing-php-version) y [Registros de errores](https://support.kapsulehost.com/es-es/error-logs).

## 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.

| Ajuste | Valor predeterminado | Valores disponibles | Qué controla |
|---|---|---|---|
| `memory_limit` | 256M | 128M, 256M, 512M, 1024M, 2048M | Cuánta memoria puede usar una solicitud |
| `max_execution_time` | 30 | 30, 60, 120, 300, 600 | Cuántos segundos puede ejecutarse una solicitud |
| `upload_max_filesize` | 64M | 16M, 32M, 64M, 128M, 256M | El archivo individual más grande que se puede subir |
| `post_max_size` | 65M | 17M, 33M, 65M, 129M, 257M | El envío de formulario total más grande |
| `max_input_vars` | 3000 | 1000, 3000, 5000, 10000 | Cuá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](https://support.kapsulehost.com/es-es/wordpress-memory-limit).
- **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](https://support.kapsulehost.com/es-es/wordpress-wp-cli).

> **Note:** `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](https://support.kapsulehost.com/es-es/sftp-access).

El formato es una directiva por línea:

```ini
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.

> **Warning:** 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](https://support.kapsulehost.com/es-es/wordpress-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](https://support.kapsulehost.com/es-es/opening-a-support-ticket).

## 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](https://support.kapsulehost.com/es-es/adding-ssh-keys).

> **Warning:** 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

- [Cambiar la versión de PHP](https://support.kapsulehost.com/es-es/changing-php-version)
- [Límite de memoria de WordPress](https://support.kapsulehost.com/es-es/wordpress-memory-limit)
- [Registros de errores](https://support.kapsulehost.com/es-es/error-logs)
- [Códigos de error HTTP](https://support.kapsulehost.com/es-es/http-error-codes)
- [Lentitud del sitio y límites de recursos](https://support.kapsulehost.com/es-es/site-slow-resource-limits)
- [WordPress y .htaccess](https://support.kapsulehost.com/es-es/wordpress-htaccess)
- [Glosario de alojamiento](https://support.kapsulehost.com/es-es/glossary)
