Para eliminar la advertencia de Nextcloud «La caché OPcache de PHP no está configurada correctamente», abra la advertencia completa en Configuración de administración → Resumen y, a continuación, aumente únicamente el límite de OPcache que se indica en la configuración de PHP utilizada por el servidor web. Reinicie el servicio PHP correspondiente y vuelva a comprobar la advertencia; es posible que la edición de la configuración de PHP mediante la línea de comandos no modifique la configuración que utiliza Nextcloud.
Por ejemplo, si Nextcloud informa que el búfer de cadenas internadas está casi lleno, aumentarlo opcache.interned_strings_bufferde 16 a 32 MB es un ajuste inicial razonable cuando el servidor tiene suficiente RAM. Una advertencia diferente sobre scripts en caché o memoria compartida requiere una configuración distinta.
¿Por qué Nextcloud muestra esta advertencia de OPcache?
OPcache almacena el código de bytes PHP compilado en memoria compartida, lo que reduce la cantidad de compilación necesaria para las solicitudes web repetidas. También reserva espacio para cadenas internadas, lo que permite a PHP reutilizar cadenas idénticas. Estas capacidades son límites independientes, por lo que ampliar una no necesariamente resuelve una alerta sobre otra.
Según la documentación de optimización del servidor Nextcloud 35 , el panel de administración emite una advertencia cuando el límite de tamaño de OPcache supera el 90 % de su capacidad asignada. El mensaje puede mencionar específicamente que el búfer de cadenas internadas está casi lleno, que el número de scripts en caché es limitado o que la memoria compartida es insuficiente. Este detalle determina la solución.
Nextcloud también requiere opcache.save_comments=1, porque depende de que se conserven los comentarios del código PHP. Por lo tanto, una extensión OPcache deshabilitada o la deshabilitación de la conservación de comentarios es un problema de configuración, no simplemente un problema de tamaño de caché.
1. Identificar el entorno que necesita atención
Inicie sesión como administrador, vaya a Configuración de administración → Información general y lea la advertencia completa de OPcache. Anote la directiva exacta si aparece alguna. No dé por sentado que todas las advertencias de OPcache indican que el búfer de cadenas internadas es demasiado pequeño.
- El búfer de cadenas internas está casi lleno: comprobar
opcache.interned_strings_buffer.
- La memoria compartida de OPcache está casi llena: comprobar
opcache.memory_consumption.
- Scripts o claves en caché que se acercan al límite: comprobar
opcache.max_accelerated_files.
- OPcache deshabilitado o comentarios no conservados: verifique
opcache.enabley opcache.save_comments.
2. Encuentra la configuración de PHP que sirve a Nextcloud.
En servidores Debian o Ubuntu que utilizan PHP-FPM, la configuración de PHP generalmente se organiza por versión de PHP y API del servidor. Por ejemplo, PHP 8.3 FPM puede leer archivos en /etc/php/8.3/fpm/conf.d/, mientras que el módulo PHP de Apache puede usar /etc/php/8.3/apache2/conf.d/.
Para ver qué servicios PHP-FPM existen en un host systemd, ejecute:
systemctl list-units --type=service 'php*-fpm.service'
Compruebe los archivos OPcache correspondientes, sustituyendo la versión de PHP instalada:
sudo ls -l /etc/php/8.3/fpm/conf.d/*opcache*
sudo grep -R 'opcache\.' /etc/php/8.3/fpm/conf.d/
Si no se encuentran archivos, inspeccione el directorio principal php.iniy las convenciones de empaquetado de su distribución. El comando php --inies útil para identificar la configuración de PHP en la interfaz de línea de comandos (CLI) , pero la CLI y PHP-FPM pueden cargar configuraciones diferentes.
Para Docker o Nextcloud All-in-One, examine la configuración de PHP dentro del contenedor de Nextcloud y utilice un método de configuración persistente compatible. /etc/phpPor lo general, editar los archivos del host no configura PHP dentro de un contenedor; además, la edición de un archivo de contenedor generado puede revertirse al recrearlo.
3. Aumentar el límite informado sin cambiar configuraciones no relacionadas
Realice una copia de seguridad del archivo de configuración correspondiente antes de realizar cualquier cambio. En una instalación convencional de PHP-FPM en Debian/Ubuntu, una solución práctica consiste en añadir una configuración local en el conf.ddirectorio FPM de esa versión de PHP. Confirme que su instalación de PHP-FPM carga este directorio antes de continuar.
Para el ejemplo del búfer de cadenas internadas , cree o edite una anulación local como por ejemplo /etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini:
; Example for a warning about interned strings
opcache.interned_strings_buffer=32
Aquí, 32significa 32 MB, no 32 bytes. Ajuste el valor final al uso real y a la RAM disponible.
Si la advertencia menciona un límite diferente, utilice el ejemplo correspondiente en lugar de sumar los tres sin más:
; Example only: larger shared bytecode cache
opcache.memory_consumption=256
; Example only: allow more cached script keys
opcache.max_accelerated_files=20000
Los valores opcache.memory_consumptionse expresan en megabytes, mientras que opcache.max_accelerated_filesespecifica un límite de clave de script. La referencia oficial de configuración de PHP OPcache explica sus unidades, valores predeterminados y la posibilidad de modificarlos.
Cuando la advertencia apunta a OPcache deshabilitado o a comentarios faltantes en lugar de a la capacidad, verifique estas configuraciones en su lugar:
opcache.enable=1
opcache.save_comments=1
No apague opcache.validate_timestampsni prolongue considerablemente la conexión opcache.revalidate_freqsolo para ignorar esta advertencia. Nextcloud advierte que la revalidación tardía de la caché puede impedir que los cambios de configuración y actualización surtan efecto rápidamente.
4. Aplicar la nueva configuración
Para un servidor de ejemplo que ejecuta PHP 8.3 a través de PHP-FPM, primero valide la configuración del servicio y luego reinicie el servicio correspondiente durante una breve ventana de mantenimiento:
sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm
Reemplace 8.3con la versión de PHP-FPM instalada y confirme el nombre del ejecutable y del servicio antes de ejecutar cualquiera de los comandos. Un reinicio interrumpe las solicitudes gestionadas por ese grupo. En Apache con mod_php, el servicio relevante es Apache en lugar de PHP-FPM; para contenedores, aplique el procedimiento de reinicio o recreación documentado de su implementación, conservando la configuración.
Si el servicio no se reinicia, restaure la configuración de la que hizo una copia de seguridad e inspeccione el registro de errores de PHP-FPM o del servidor web.
5. Si la advertencia persiste, compruebe la configuración PHP web efectiva.
Primero, recargue la configuración de administración → Resumen después de que los procesos PHP se hayan reiniciado. Si la advertencia persiste, verifique que la directiva modificada se cargue realmente en el entorno de ejecución web de PHP, no solo en la interfaz de línea de comandos. Compruebe si existe un archivo de carga posterior .inio una anulación del grupo PHP-FPM que reemplace su valor.
En un servidor que usted controle, puede inspeccionar temporalmente los valores PHP de la web mediante un punto final de diagnóstico con acceso restringido y ini_get()la función de PHP. Nunca deje una phpinfo()página pública en línea: puede revelar el entorno, las rutas, los módulos y otros detalles de configuración confidenciales. Elimine cualquier punto final de diagnóstico inmediatamente después de la verificación.
Para obtener una alerta de dimensionamiento persistente, inspeccione el uso real de OPcache bajo tráfico normal en lugar de duplicar repetidamente los valores. La documentación de PHPopcache_get_status() describe las estadísticas de memoria, cadenas internadas y scripts en caché disponibles para un proceso PHP en ejecución.
Las imágenes Docker oficiales de Nextcloud y las implementaciones All-in-One incluyen sus propios valores predeterminados de PHP; no asuma que las modificaciones a nivel de host o los valores recomendados de otra instalación se mantendrán. Consulte el repositorio oficial de Docker de Nextcloud o el repositorio oficial de All-in-One para obtener el modelo de configuración que se ajuste a su implementación.
Verifica que la solución haya funcionado.
Vuelva a Configuración de administración → Resumen y confirme que la advertencia específica de OPcache ha desaparecido. Abra y recargue algunas páginas de Nextcloud para asegurarse de que la aplicación sigue funcionando correctamente. Si la advertencia reaparece tras un uso normal, vuelva a comprobar el mismo límite medido y la configuración efectiva de PHP web; el objetivo es dejar suficiente margen sin asignar memoria innecesaria a OPcache.