Para eliminar una advertencia de límite de memoria PHP de Nextcloud, establezca memory_limitun valor mínimo 512Men la configuración PHP del servidor web y, a continuación, reinicie o recargue el servicio PHP correspondiente. El manual de administración estable actual de Nextcloud recomienda al menos 512 MB para esta configuración de PHP. La razón más común por la que persiste una advertencia tras editar un archivo es que el servidor web utiliza una configuración PHP diferente a la de la instalación de PHP desde la línea de comandos.
Seleccione el procedimiento que mejor se adapte a su implementación: Apache con mod_php, Apache o Nginx con PHP-FPM, un contenedor o un paquete Nextcloud gestionado. No modifique el archivo random de un host php.iniy asuma que todas las implementaciones lo utilizan. Verifique el resultado en la página de Resumen de administración de Nextcloud, que refleja la configuración de la aplicación web.
¿Qué significa la advertencia?
La memoria máxima que puede asignar un script PHP es la que establece PHP memory_limit. No se trata de la RAM total reservada para Nextcloud, ni aumenta la memoria física disponible para el servidor. El manual de Nextcloud recomienda configurar al menos 512 MB para esta directiva. Por otro lado, los requisitos del sistema explican que las necesidades reales de memoria del servidor varían según los usuarios, las aplicaciones, los archivos y la actividad; recomiendan al menos 512 MB de RAM por proceso PHP, con un mínimo de 128 MB.
Aumentar el límite de PHP puede solucionar una advertencia de configuración y dar más margen a las solicitudes que consumen mucha memoria. Sin embargo, no puede añadir RAM a un servidor con recursos insuficientes, reparar una fuga de memoria ni garantizar que todas las aplicaciones se completen correctamente. Si el servidor ya tiene problemas de memoria, un límite superior por solicitud puede aumentar el riesgo de que los procesos PHP concurrentes agoten la RAM del sistema.
¿Qué configuración de PHP debería editar?
Primero, identifica cómo PHP ejecuta Nextcloud. Una comprobación en la terminal, como la que php --inimuestra los informes de la configuración de la línea de comandos (CLI), puede mostrar la configuración. Las solicitudes web de Nextcloud pueden usar un módulo Apache independiente o un servicio PHP-FPM con una configuración diferente php.inio una anulación del pool. Nextcloud especifica que PHP para web y CLI puede usar archivos de configuración distintos.
En sistemas derivados de Debian, las ubicaciones típicas incluyen /etc/php/8.x/apache2/php.iniel módulo PHP de Apache y /etc/php/8.x/fpm/php.iniPHP-FPM. La versión de PHP y los nombres de los directorios varían. Otras distribuciones suelen usar rutas diferentes, como un directorio compartido /etc/php.ini. Considere estos ejemplos únicamente; utilice su gestor de paquetes, la configuración del servicio y el entorno de ejecución de PHP para localizar el archivo activo.
Para inspeccionar la configuración de la CLI, ejecute:
php --ini
php -i | grep -i '^memory_limit'
Estos comandos son útiles para tareas programadas que invocan PHP desde la línea de comandos, pero no demuestran que el proceso de Nextcloud visible en el navegador utilice el mismo valor. Evite dejar una phpinfo()página pública en el servidor: puede revelar rutas, módulos y detalles de ejecución.
¿Cómo se establece el límite para Apache o PHP-FPM?
Realice una copia de seguridad del archivo de configuración activo antes de modificarlo. En el archivo correcto php.ini, busque la memory_limitlínea existente y establézcala en 512Mo en un valor superior seleccionado para su carga de trabajo:
memory_limit = 512M
Utilice una única configuración activa en lugar de añadir líneas duplicadas al final de varios archivos. Un grupo de PHP-FPM también puede definir valores para sus trabajadores, así que compruebe la configuración del grupo si el valor php.inino surte efecto. Algunas implementaciones de PHP admiten una configuración por directorio .user.ini; su activación depende de la configuración del servidor y debe confirmarse con el administrador.
Apache usando mod_php
Edita el archivo php.iniutilizado por Apache, guárdalo y luego reinicia Apache para que el módulo recargue su configuración. Los nombres de los servicios varían. En Debian o Ubuntu, el servicio suele ser apache2; en sistemas de la familia RHEL suele ser httpd. Utiliza el nombre del servicio correspondiente a tu sistema operativo y procedimientos de mantenimiento.
sudo systemctl restart apache2
Sustituya este nombre apache2si su distribución utiliza un nombre de unidad diferente. Si Nextcloud se sirve a través de PHP-FPM en lugar de mod_php, reiniciar Apache por sí solo no recargará los procesos de PHP.
Apache o Nginx usando PHP-FPM
Edite la configuración de PHP-FPM que utiliza el sitio. Tras guardar los cambios, reinicie o recargue el servicio PHP-FPM correspondiente. Su unidad puede incluir la versión de PHP, por ejemplo php8.3-fpm, o utilizar otro nombre específico del proveedor.
sudo systemctl restart php8.3-fpm
Utilice el nombre de servicio correcto para su versión de PHP instalada. Nginx pasa las solicitudes de PHP a FPM, por lo que cambiar la configuración de PHP generalmente requiere aplicar el cambio a FPM; reiniciar Nginx por sí solo no restablece el límite de memoria de PHP. Si la configuración de su grupo PHP-FPM anula memory_limitla configuración predeterminada, ajústela o elimine la anulación y luego reinicie el grupo.
¿Qué ocurre si Nextcloud se ejecuta en Docker, AIO, Snap u otro paquete?
Utilice el mecanismo de configuración para ese método de instalación. Editar los archivos PHP del host generalmente no modifica el entorno de ejecución de PHP dentro de un contenedor o un paquete aislado. La imagen oficial de Docker de Nextcloud documenta la PHP_MEMORY_LIMITvariable de entorno, con un valor predeterminado 512Men la documentación de la imagen actual. Configúrela en el archivo Compose o en la configuración del contenedor y, a continuación, recree o reinicie el contenedor de la aplicación según el procedimiento de implementación.
environment:
PHP_MEMORY_LIMIT: 512M
No copie esa configuración a todos los tipos de instalación. El manual de Nextcloud indica que los entornos llave en mano, como AIO, Snap, NCP y Community Docker, tienen PHP preconfigurado y remite a los administradores a las instrucciones específicas del paquete para su personalización. Para esas configuraciones, utilice la interfaz o la documentación compatibles con dicho paquete. Los montajes de volumen persistentes y la configuración generada también pueden anular una edición manual única.
¿Cómo puedo confirmar que la advertencia se ha solucionado?
- Aplique el cambio a la configuración PHP visible para la web y reinicie o recargue el servicio web/PHP correspondiente.
- Inicie sesión en Nextcloud como administrador y abra Configuración > Administración > Resumen .
- Actualiza la página y revisa las advertencias de configuración. Confirma que la advertencia de límite de memoria de PHP haya desaparecido.
- Ejecute una operación representativa que haya provocado la advertencia anteriormente, como la tarea de la aplicación afectada, y revise los registros de Nextcloud y PHP en busca de mensajes de agotamiento de memoria.
Si también ejecutas tareas en segundo plano de Nextcloud mediante cron del sistema, verifica la configuración de PHP de la CLI por separado. La advertencia que se muestra en la web puede borrarse mientras las tareas de la CLI sigan usando un límite inferior. Confirma el valor de la CLI con php --iniy php -ipara el mismo binario de PHP que usa el comando cron.
¿Cuándo se debe aumentar el valor por encima de 512M?
Solo aumente el límite cuando la advertencia haya desaparecido, pero una carga de trabajo documentada aún alcance el límite de PHP, o cuando la guía de soporte de una aplicación requiera más memoria. Primero, verifique la memoria real del servidor, la cantidad de procesos de PHP-FPM, la memoria de la base de datos y otros servicios. Dado que PHP aplica el límite por script, varios procesos activos pueden usar una cantidad considerable de memoria al mismo tiempo. Establezca un límite medido que se ajuste al presupuesto de memoria del host en lugar de usar -1, que PHP documenta como sin límite de memoria.
Si la advertencia desaparece, pero el servidor sigue funcionando lento o se interrumpen procesos, revise el uso de la memoria del sistema y el intercambio, los registros de PHP-FPM y los registros de Nextcloud. Considere si alguna aplicación o solicitud específica está consumiendo memoria en exceso. Una caché de memoria como APCu o Redis soluciona los problemas de almacenamiento en caché y rendimiento; no reemplaza la configuración de PHP memory_limit. Modifique un factor a la vez para poder identificar si el resultado mejora.
Controles rápidos según el síntoma
- La advertencia persiste después de editar php.ini: compruebe si editó el archivo de la CLI en lugar del archivo de Apache/FPM, o si alguna configuración del pool lo está anulando.
- La advertencia desaparece, pero la tarea programada (cron) sigue fallando: compruebe el binario PHP de la CLI y su configuración independiente.
- El servidor web devuelve un error tras el reinicio: inspeccione el estado y los registros del servidor web o del servicio PHP-FPM, y restaure la copia de seguridad si el cambio de configuración provocó un fallo al iniciar.
- La advertencia desaparece, pero el host se queda sin RAM: reduzca la concurrencia, añada memoria o identifique el proceso que está utilizando memoria antes de aumentar aún más el límite de PHP.
- Si utiliza un contenedor o un paquete llave en mano, cambie la configuración de PHP compatible del paquete en lugar de la del archivo php.ini del host.
Referencias oficiales