Solucionar la advertencia de límite de memoria PHP de Nextcloud

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?

  1. Aplique el cambio a la configuración PHP visible para la web y reinicie o recargue el servicio web/PHP correspondiente.
  2. Inicie sesión en Nextcloud como administrador y abra Configuración > Administración > Resumen .
  3. Actualiza la página y revisa las advertencias de configuración. Confirma que la advertencia de límite de memoria de PHP haya desaparecido.
  4. 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

Dejar un comentario

Solucionar la advertencia de límite de memoria PHP de Nextcloud

Solucionar la advertencia de límite de memoria PHP de Nextcloud

Establezca el límite de memoria de PHP en al menos 512 MB para Nextcloud, busque la configuración web de PHP correcta, reinicie Apache o PHP-FPM y verifique que la advertencia haya desaparecido.

Cómo configurar un servidor Matrix Coturn TURN/STUN para llamadas de audio y vídeo

Cómo configurar un servidor Matrix Coturn TURN/STUN para llamadas de audio y vídeo

Configura Coturn con Synapse para llamadas Matrix WebRTC. Configura las credenciales compartidas, NAT, puertos del firewall, opciones TLS y distingue entre TURN heredado, MatrixRTC y LiveKit.

Cómo configurar la aplicación de correo de Nextcloud con autenticación OAuth2

Cómo configurar la aplicación de correo de Nextcloud con autenticación OAuth2

Configura Nextcloud Mail con OAuth2 para Gmail o Microsoft 365, verifica el acceso IMAP/SMTP, soluciona problemas de redireccionamiento y conoce los límites.

Cómo solucionar la advertencia de sesión "No se puede verificar la identidad" en Element

Cómo solucionar la advertencia de sesión "No se puede verificar la identidad" en Element

Solucione el problema de la advertencia de sesión "No se puede verificar la identidad" de Element verificándola con otro dispositivo de confianza o una clave de recuperación, y aprenda cuándo es seguro restablecer la configuración.

Migrar buzones de correo de Kopano a Grommunio o Zammad: Elija la ruta correcta

Migrar buzones de correo de Kopano a Grommunio o Zammad: Elija la ruta correcta

Compara la migración de Kopano con la de grommunio y Zammad. Descubre qué datos de buzón puede conservar cada método, cómo realizar pruebas piloto y verificar los resultados, y cuándo es apropiado utilizar IMAP o una importación personalizada.

Cómo migrar de forma segura una carpeta de datos de Nextcloud a un disco duro externo.

Cómo migrar de forma segura una carpeta de datos de Nextcloud a un disco duro externo.

Traslada un directorio de datos de Nextcloud a un disco duro externo sin romper las referencias de archivos. Utiliza copias de seguridad, un montaje persistente, rsync, permisos y enlaces simbólicos de forma segura.

Solucione el problema de Nextcloud Cron Jobs que no se ejecuta automáticamente con systemd.

Solucione el problema de Nextcloud Cron Jobs que no se ejecuta automáticamente con systemd.

Solucione los problemas con los temporizadores cron de systemd de Nextcloud en Ubuntu comprobando el usuario del servicio, las rutas de PHP y Nextcloud, la activación del temporizador y el historial de ejecución de trabajos.

Cómo configurar la integración de Etherpad en BigBlueButton

Cómo configurar la integración de Etherpad en BigBlueButton

Habilite las notas compartidas de Etherpad en BigBlueButton 4.0 beta.4 o versiones anteriores. Instale paquetes opcionales, elija una configuración predeterminada para la reunión o global y solucione problemas de proxy.

Solucionar el límite de subida de archivos de Nextcloud de 2 GB: Cómo permitir la subida de archivos grandes

Solucionar el límite de subida de archivos de Nextcloud de 2 GB: Cómo permitir la subida de archivos grandes

Soluciona el límite de subida de 2 GB en Nextcloud revisando PHP, Nginx o Apache, los proxies inversos, los tiempos de espera y el almacenamiento. Prueba el cambio de forma segura con un archivo que supere el límite anterior.

Cómo configurar SSL/HTTPS para ownCloud Server con Let's Encrypt

Cómo configurar SSL/HTTPS para ownCloud Server con Let's Encrypt

Configura Let's Encrypt HTTPS para ownCloud Server en Apache. Verifica el DNS y los puertos, emite un certificado con Certbot, habilita las redirecciones y prueba la renovación.