Solucionar el error “Límite de memoria PHP por debajo del valor recomendado” en ownCloud 10

El resultado que se busca no es simplemente que "la advertencia haya desaparecido". Una solución correcta implica que el proceso PHP que realmente gestiona ownCloud 10 informe de un límite de memoria de al menos 512 MB, que la advertencia del administrador de ownCloud desaparezca, que las tareas programadas o de la CLI también utilicen un límite adecuado, y que el host siga teniendo suficiente memoria física para ejecutar PHP, el servidor web, la base de datos y las tareas en segundo plano sin un uso excesivo de la memoria virtual.

Para ownCloud Classic 10.16, el entorno Docker oficial utiliza OWNCLOUD_MEMORY_LIMIT=512Mcomo configuración predeterminada recomendada. La documentación de ownCloud también distingue la configuración PHP utilizada por el servidor web de la utilizada por php-cli. Esa distinción es la razón principal por la que los administradores a veces cambian memory_limit, reinician un servicio y aún ven la misma advertencia.

Esta guía comienza con las comprobaciones menos intrusivas y luego muestra las rutas de Apache, PHP-FPM, CLI y Docker. También explica cuándo está justificado aumentar aún más el límite y cuándo el problema real es la memoria RAM insuficiente del host, en lugar de la configuración de PHP en sí.

Cómo se ve el éxito

ControlarBuen resultadoSi falla
Descripción general del administrador de ownCloudNo hay advertencia de "límite de memoria PHP por debajo del valor recomendado"Probablemente modificaste la configuración de PHP incorrecta o no reiniciaste el servicio correcto.
Entorno de ejecución Web PHPmemory_limitmuestra 512M o superiorLocalice el archivo de configuración cargado utilizado por la solicitud web.
CLI / tiempo de ejecución de cronphp -r 'echo ini_get("memory_limit");'muestra el valor previstophp.iniEdita también la configuración específica de la CLI .
Memoria del hostSuficiente RAM disponible; poca o ninguna presión de intercambio sostenida.No aumentes los límites de PHP a ciegas. Revisa la cantidad de procesos de PHP o el tamaño del servidor.
RegistrosNo se producen errores recurrentes de "Tamaño de memoria permitido agotado".Identifique la carga de trabajo que consume memoria antes de volver a aumentar el límite.

1. Confirma la advertencia y el valor que ve ownCloud.

Vista general del administrador de ownCloud 10 que muestra una advertencia de que el límite de memoria PHP está por debajo del valor recomendado y un límite de 128 MB.
Comience con el valor visible para ownCloud. Un límite de tiempo de ejecución web de 128 MB o 256 MB es inferior al valor de 512 MB utilizado por la configuración de Docker recomendada por ownCloud.

Abre la configuración de administración de ownCloud y observa la advertencia sobre el límite de memoria. Antes de realizar cualquier cambio, anota la versión de ownCloud, la versión de PHP, el tipo de servidor web y el límite de memoria actual. Esto te servirá de referencia y te ayudará a evitar instalar PHP incorrectamente en sistemas con varias versiones.

La documentación actual de ownCloud 10.16 indica que los requisitos del servidor dependen en gran medida del número de usuarios, la cantidad de archivos y la actividad. Su configuración de Docker establece OWNCLOUD_MEMORY_LIMIT=512My recomienda mantener esa configuración predeterminada. Esto hace que 512 MB sea una base razonable para resolver la advertencia, pero no garantiza que todas las cargas de trabajo quepan dentro de 512 MB.

Referencias oficiales: recomendaciones de implementación de ownCloud y variables de entorno de Docker de ownCloud .

2. No confíe en el valor de la CLI para representar el servidor web.

Terminal de Ubuntu que muestra php -i y php --ini con un límite de memoria CLI de 128M y la ruta del archivo php.ini de la CLI.
php --iniInforma sobre la configuración de PHP CLI. Esta puede diferir de la configuración de PHP utilizada por Apache o PHP-FPM para dar servicio a ownCloud.

Ejecute estos comandos para ver qué utiliza el proceso PHP de línea de comandos:

php --ini
php -r 'echo ini_get("memory_limit"), PHP_EOL;'

Esto es útil para occtareas programadas (cron jobs), pero no es prueba de lo que utiliza la solicitud web. ownCloud documenta explícitamente rutas de configuración separadas, tales como:

/etc/php/<version>/apache2/php.ini
/etc/php/<version>/fpm/php.ini
/etc/php/<version>/cli/php.ini

Si su CLI dice 512M mientras que la página de administración sigue quejándose, esa discrepancia es una fuerte señal de que el servidor web está cargando otro php.ini.

Consulte las notas de configuración de PHP de ownCloud , que advierten específicamente que es posible que sea necesario cambiar la configuración de PHP en más de un archivo INI.

3. Encuentra la configuración de PHP utilizada por la solicitud web.

Página phpinfo del navegador que muestra el archivo de configuración PHP-FPM cargado y un límite de memoria de 128M junto a una terminal que muestra la configuración de la CLI.
Compara el entorno de ejecución de PHP del navegador con el entorno de ejecución de la CLI. El archivo de configuración cargado en el navegador es el que importa para la advertencia web de ownCloud.

La prueba más fiable consiste en inspeccionar PHP desde la misma pila web que aloja ownCloud. La documentación de ownCloud describe el uso de una phpinfo.phppágina temporal:

<?php phpinfo(); ?>

Colóquelo temporalmente en la raíz del sitio web, ábralo en un navegador y localice:

  • Archivo de configuración cargado
  • límite_de_memoria
  • API del servidor

Luego, elimine el archivo phpinfo inmediatamente . ownCloud advierte que dejar una página phpinfo pública expone información confidencial del servidor.

Si el navegador dice /etc/php/7.4/fpm/php.inimientras php --inidice /etc/php/7.4/cli/php.ini, ahora sabes exactamente por qué editar el archivo CLI no eliminó la advertencia.

4. PHP-FPM: aumentar el límite de tiempo de ejecución web a 512 MB.

Editor Nano abierto en un archivo php.ini de PHP-FPM con memory_limit establecido en 512M
Para una configuración de Nginx o Apache que utilice PHP-FPM, cambie el FPM php.inio la anulación del pool/sitio correspondiente, no solo el archivo CLI.

En una instalación típica de Debian o Ubuntu:

sudo nano /etc/php/7.4/fpm/php.ini

Encontrar:

memory_limit = 128M

y cámbialo a:

memory_limit = 512M

Utilice la versión de PHP instalada en la ruta. A continuación, reinicie el servicio FPM correspondiente y su servidor web si es necesario:

sudo systemctl restart php7.4-fpm
sudo systemctl reload nginx

Para Apache con proxy_fcgiu otra configuración de FPM, reinicie PHP-FPM y recargue Apache en su lugar.

ownCloud también señala que PHP-FPM no consume la configuración de PHP de .htaccess. Si depende de anulaciones por directorio con FPM, utilice el mecanismo de configuración de PHP/FPM compatible con su entorno, como la php.iniconfiguración de grupo apropiada o .user.ini.

5. Apache con mod_php: edite la configuración de Apache PHP

El editor Nano muestra el límite de memoria establecido en 512M en el archivo php.ini de Apache, seguido de un comando de reinicio de Apache.
Con Apache mod_php, edite la configuración PHP específica de Apache y reinicie Apache para que los nuevos procesos de trabajo carguen el nuevo límite.

Si Apache carga PHP directamente como un módulo, edite el archivo específico de Apache:

sudo nano /etc/php/7.4/apache2/php.ini

Colocar:

memory_limit = 512M

Luego, reinicie Apache:

sudo systemctl restart apache2

No copie el número de versión mecánicamente. Compruebe la versión que realmente carga Apache. Los sistemas actualizados a través de varias versiones de PHP a menudo conservan varios directorios en /etc/php/.

El criterio de resultado es sencillo: tras el reinicio, el entorno de ejecución PHP visible para la web debe mostrar el nuevo valor. Si sigue mostrando 128M, otra capa de configuración está sobrescribiendo tu modificación.

6. Actualizar el límite de la CLI cuando occ o cron utilicen muy poca memoria.

La advertencia web de administración se genera mediante el entorno de ejecución web, pero occlas tareas programadas (cron jobs) utilizan la interfaz de línea de comandos de PHP. La documentación de ownCloud lo especifica claramente.

Editar:

sudo nano /etc/php/7.4/cli/php.ini

Colocar:

memory_limit = 512M

Luego verifique:

php -r 'echo ini_get("memory_limit"), PHP_EOL;'

No es necesario reiniciar un servicio para PHP de línea de comandos, ya que cada invocación de la línea de comandos inicia un nuevo proceso. Sin embargo, si su tarea programada (cron job) llama explícitamente a otro binario de PHP, verifique que se trate del binario exacto en lugar de asumir /usr/bin/phpque es el que se está utilizando.

ownCloud recomienda ejecutarlo occcomo usuario HTTP, normalmente www-dataen Debian/Ubuntu. Su documentación oficial de occ también advierte que occse debe usar la misma versión de PHP que el servidor web cuando hay varias versiones instaladas.

7. Docker: utilice OWNCLOUD_MEMORY_LIMIT en lugar de editar archivos dentro del contenedor.

Archivo Docker Compose que muestra OWNCLOUD_MEMORY_LIMIT establecido en 512M y el contenedor ownCloud siendo recreado.
Para el contenedor oficial de ownCloud, configúrelo OWNCLOUD_MEMORY_LIMIT=512Men el entorno del contenedor y vuelva a crear el servicio para que se actualice la configuración PHP generada.

Para la imagen oficial de Docker de ownCloud, utilice la variable de entorno documentada:

environment:
  OWNCLOUD_MEMORY_LIMIT: 512M

Luego, vuelva a crear el servicio:

docker compose up -d

No realice la corrección principal editando php.inidentro de un contenedor efímero. La recreación del contenedor puede descartar esos cambios. La documentación oficial del entorno Docker de ownCloud define OWNCLOUD_MEMORY_LIMIT=512My recomienda mantener esa configuración predeterminada.

Si el propio host de Docker tiene un límite de memoria estricto, inspeccione también las restricciones del contenedor:

docker stats

Un límite de PHP de 512 MB no otorga mágicamente al contenedor 512 MB de memoria libre; solo permite que una solicitud individual de PHP consuma hasta esa cantidad. El contenedor y el host aún necesitan suficiente memoria para todos los procesos PHP simultáneos y otros servicios.

8. Reinicie el servicio correcto y verifique desde el mismo entorno de ejecución.

El terminal reinicia PHP-FPM y Nginx, y una descripción general de ownCloud muestra el límite de memoria de PHP en 512 MB con comprobaciones superadas.
La solución solo se considerará completa cuando el entorno de ejecución web informe de 512 MB o más y ownCloud ya no muestre la advertencia de poca memoria.

Tras reiniciar el servicio correspondiente, vuelva a comprobar la página temporal de información de PHP o la vista general de administración de ownCloud. A continuación, elimine la página de información de PHP.

Si ha modificado PHP-FPM, compruebe lo siguiente:

sudo systemctl status php7.4-fpm
sudo systemctl status nginx

Si cambiaste Apache:

sudo systemctl status apache2

Actualiza la página de administración de ownCloud. La advertencia debería haber desaparecido si ownCloud ahora se está ejecutando con al menos el límite esperado.

9. Compruebe la memoria RAM del host antes de aumentar el límite de PHP más allá de 512 MB.

Terminal de Ubuntu que muestra la memoria libre, los procesos de trabajo de PHP-FPM y las entradas recientes del registro de ownCloud.
Tras aumentar el límite por solicitud, compruebe la memoria total del sistema y el comportamiento de los procesos PHP. Un límite superior para PHP puede incrementar el consumo de RAM en el peor de los casos cuando hay muchos procesos activos.

Correr:

free -h
ps aux | grep php-fpm
vmstat 1

El memory_limitlímite de PHP es por script. No es una reserva ni equivale a la cantidad de RAM que necesita el servidor. Si tienes 20 procesos PHP y le das permiso a cada solicitud para usar una gran cantidad de memoria, en el peor de los casos teóricos, la RAM de la máquina podría superarse con creces.

La documentación de optimización de ownCloud ofrece la misma advertencia general para los procesos del servidor web: ajuste el número de procesos de forma que el uso total de memoria se mantenga por debajo de la RAM disponible; de ​​lo contrario, el sistema comenzará a usar el intercambio de memoria y el rendimiento disminuirá. Consulte la guía de optimización de ownCloud Classic .

Si la advertencia de 512M ha desaparecido y las operaciones normales funcionan correctamente, no hay razón para aumentar el límite solo para que el número sea mayor.

10. Cuando 512M sigue produciendo “Tamaño de memoria permitido agotado”

Una advertencia de recomendación borrada y un fallo por agotamiento de memoria son problemas diferentes. Si los registros contienen mensajes como:

PHP Fatal error: Allowed memory size of ... bytes exhausted

Identifique la operación que lo desencadena. Los escaneos grandes, las tareas de cifrado, las operaciones de almacenamiento externo, el procesamiento de imágenes o una aplicación de terceros pueden tener perfiles de memoria muy diferentes.

Revisa el registro de ownCloud y el registro de errores del servidor web/PHP. Una instalación estándar de ownCloud escribe su propio registro en el directorio de datos configurado, generalmente data/owncloud.log. Evita considerar “aumentarlo a 1G” como el siguiente paso automático. Primero, determina si la misma operación alcanza repetidamente el límite.

Si una tarea administrativa conocida necesita legítimamente más memoria, una anulación específica de la interfaz de línea de comandos puede ser más segura que asignar globalmente un límite enorme a cada solicitud web:

php -d memory_limit=1G occ <command>

Utilice esto únicamente cuando comprenda el comportamiento del comando y de la memoria. No soluciona los problemas de las solicitudes web que se ejecutan a través de PHP-FPM o Apache.

Por qué puede persistir la advertencia después de editar php.ini

SíntomaCausa probableSiguiente comprobación
php -rmuestra 512M, ownCloud todavía muestra 128MSolo cambiaste la CLI PHPComprueba la información de PHP en tu navegador y su archivo de configuración cargado.
El archivo FPM indica 512 MB, pero el navegador sigue mostrando 128 MB.El grupo, .user.iniu otro archivo INI lo sobrescribe.Inspeccione los valores "local" y "master" de phpinfo y los archivos INI analizados adicionales.
Los cambios de valor solo se producen después de reiniciar.El servicio correcto no se reinició.Reinicie PHP-FPM o Apache explícitamente después de la edición.
El valor de Docker vuelve a la configuración anterior después de recrearlo.Editaste dentro del contenedorConfigurado OWNCLOUD_MEMORY_LIMITen Compose o en el entorno de despliegue.
La advertencia desaparece, pero el servidor comienza a intercambiar.La concurrencia de PHP excede la memoria del host.Reduzca el número de trabajadores, optimice la carga de trabajo o añada memoria RAM.

No confunda memory_limit con los límites de carga.

memory_limity resuelven diferentes problemas. Aumentar la memoria PHP no permite automáticamente a los usuarios subir archivos más grandes. Las notas de configuración de ownCloud 10.16 indican por separado que upload_max_filesizedebe configurarse a al menos 512 MB para el mínimo documentado y explican que los límites de carga necesitan su propia configuración.post_max_sizepost_max_size

Si el síntoma real es que “las cargas grandes fallan”, revise upload_max_filesizelos post_max_sizelímites de tamaño del cuerpo del proxy/servidor web, los tiempos de espera y la capacidad del disco temporal. No utilice un valor superior memory_limitcomo sustituto de esos controles.

Lista de verificación final

  • Confirma la advertencia y el valor actual en ownCloud.
  • Identifica si ownCloud utiliza Apache mod_php o PHP-FPM.
  • Localice el archivo de configuración cargado del entorno de ejecución web .
  • Configure el PHP web memory_limita al menos 512M.
  • Actualiza también la CLI de PHP si occcron utiliza un límite inferior.
  • Para Docker, se configura OWNCLOUD_MEMORY_LIMIT=512Men el entorno de despliegue.
  • Reinicie o vuelva a crear el servicio que realmente sirve PHP.
  • Verifique el valor desde el entorno de ejecución web, no solo desde la línea de comandos.
  • Confirma que la advertencia de ownCloud ha desaparecido.
  • Supervise la memoria RAM y la memoria de intercambio del host antes de aumentar el límite más allá de 512 MB.

En resumen

La solución definitiva para el error "Límite de memoria PHP por debajo del valor recomendado" en ownCloud 10 consiste en configurar el entorno de ejecución de PHP que realmente sirve a ownCloud con un límite de 512 MB o superior, y luego verificar el resultado con el mismo entorno de ejecución. El fallo más común se produce al editar /etc/php/.../cli/php.iniun archivo de configuración mientras ownCloud se ejecuta a través de PHP-FPM o Apache.

Deténgase una vez que la advertencia haya desaparecido, las operaciones rutinarias funcionen correctamente y el servidor tenga suficiente memoria disponible. Si PHP sigue consumiendo 512 MB durante una operación específica, pase de "aumentar el límite" a un diagnóstico de carga de trabajo: inspeccione el comando que falla, las aplicaciones, los registros, la concurrencia y la memoria RAM física. Un límite mayor puede ser apropiado, pero solo cuando la carga de trabajo lo justifique y el servidor pueda soportarlo de forma segura.

Dejar un comentario

Solucionar el problema de la carga automática de Nextcloud en iOS que no funciona en segundo plano

Solucionar el problema de la carga automática de Nextcloud en iOS que no funciona en segundo plano

Si Nextcloud para iPhone solo sube archivos cuando está abierto, compruebe la configuración de Carga automática, la Actualización en segundo plano de la aplicación de iOS, el acceso a Fotos, el Modo de bajo consumo, los límites de red y los errores del servidor con esta práctica lista de verificación.

Cómo configurar el visor de archivos de Kopano WebApp y los complementos MDM

Cómo configurar el visor de archivos de Kopano WebApp y los complementos MDM

Aprenda cómo habilitar las vistas previas de archivos de Kopano WebApp e instalar el complemento MDM, con los requisitos de Z-Push y PHP SOAP, comprobaciones de configuración y pruebas de seguridad de dispositivos.

Solucionar el error “Límite de memoria PHP por debajo del valor recomendado” en ownCloud 10

Solucionar el error “Límite de memoria PHP por debajo del valor recomendado” en ownCloud 10

Solucione correctamente la advertencia de límite de memoria PHP de ownCloud 10 encontrando la configuración PHP web activa, estableciendo 512M, gestionando la CLI y Docker, y verificando el espacio de RAM disponible.

Solucionar el error 500 del servidor interno en el panel de control de BigBlueButton Greenlight

Solucionar el error 500 del servidor interno en el panel de control de BigBlueButton Greenlight

Solucione el error 500 del panel de control de Greenlight identificando su versión, revisando los registros de la aplicación, verificando la configuración de la API y la base de datos de BBB y revisando la configuración del proxy.

Cómo configurar alias de salas Matrix personalizadas en su dominio

Cómo configurar alias de salas Matrix personalizadas en su dominio

Aprende cómo funcionan los alias de sala de Matrix, prepara tu dominio y el servidor principal de Synapse, configura la delegación de federación, crea un alias personalizado y verifícalo de forma segura.

Cómo transferir la propiedad de archivos compartidos en ownCloud Server

Cómo transferir la propiedad de archivos compartidos en ownCloud Server

Aprende cómo un administrador de ownCloud Server puede transferir una carpeta seleccionada o todos los archivos a otro usuario con occ, teniendo en cuenta los recursos compartidos, las versiones y la verificación.

Solucionar el aviso de Nextcloud "Algunos archivos no han superado la comprobación de integridad".

Solucionar el aviso de Nextcloud "Algunos archivos no han superado la comprobación de integridad".

Aprende a diagnosticar las advertencias de integridad del código de Nextcloud, restaurar los archivos principales modificados o faltantes, gestionar los archivos adicionales y los errores de firma de la aplicación, y luego verificar la reparación de forma segura.

Solucionar el problema del cliente de sincronización de escritorio de Nextcloud que se queda atascado en "Procesando archivos".

Solucionar el problema del cliente de sincronización de escritorio de Nextcloud que se queda atascado en "Procesando archivos".

¿Nextcloud Desktop se queda atascado en "Procesando archivos"? Diagnostica el archivo que causa el bloqueo, la configuración de sincronización, la red, los registros y las opciones de restablecimiento seguro sin poner en riesgo tus datos.

Cómo restablecer una contraseña de administrador de Nextcloud con OCC

Cómo restablecer una contraseña de administrador de Nextcloud con OCC

Restablezca una contraseña de administrador de Nextcloud olvidada desde la línea de comandos con occ. Encuentre la ruta de instalación correcta, ejecute el restablecimiento de forma segura y verifique el acceso.

Cómo configurar un servidor de grabación y transmisión Jibri para Jitsi Meet

Cómo configurar un servidor de grabación y transmisión Jibri para Jitsi Meet

Configura Jibri con Docker Compose para Jitsi Meet. Configura la grabación, protege los permisos de almacenamiento, inicia el servicio y prueba las grabaciones y las transmisiones RTMP.