Habilitar OPcache para Moodle 3.5 o superior
Normalmente, los scripts PHP se compilan en tiempo de ejecución. Parte del tiempo de computación es requerido para convertir el código. Con OPcache, este cálculo se realiza solo una vez y el script precompilado, legible por máquina (calculado) se almacena en un caché. La secuencia de comandos se puede cargar desde este caché a la velocidad del rayo si es necesario. En la mayoría de los casos, esto conduce a mejoras considerables de velocidad. Los sitios web especialmente grandes pueden manejar muchas más solicitudes simultáneamente con OPcache activado.
La extensión estándar OPCache está altamente recomendada; desde Moodle 2.6, es la única solución soportada oficialmente por los desarrolladores de PHP. Los beneficios son aumento del desempeño y significativamente menor uso de memoria. Sin embargo, las extensiones para cacheo de opcode (incluyendo OPcache, eAccelerator y APC) no son compatibles con los servidores configurados para usar algunos tipos comunes de manejadores PHP de alta seguridad, tales como suPHP (que se emplea por defecto en servidores Linux WHM / cPanel ). Esto es muy comun en servidores compartidos.
Instalación
La extensión OPcache es distribuída como parte de PHP 5.5.0 y posteriores. Está disponible también para versiones estables más antiguas de PHP desde PECL bajo el nombre original ZendOPcache.
En derivados de Debian, normalmente se instala junto con la base de PHP pero está deshabilitada, se instalaría como sigue:
$ sudo apt install php7.x-opcache
Cambiar la x por la subversión de PHP ya instalada.
Configuración
Configuraciones en php.ini para habilitarla. En derivados de Debian, editar el archivo /etc/php/7.x/apache2/php.ini (cambiar la x por el numero de sub versión).
$ sudo vim /etc/php/7.x/apache2/php.ini
Buscar el bloque de [opcache] y poner lo siguiente:
[opcache] opcache.enable = 1 opcache.memory_consumption = 128 opcache.max_accelerated_files = 20000 opcache.revalidate_freq = 60 ; Requerido para Moodle opcache.use_cwd = 1 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 0 ; Si algo no funciona en Moodle ;opcache.revalidate_path = 1 ; Puede arreglar problemas con rutas ''include''
Reiniciar el servicio de Apache para que retome los cambios de PHP
$ sudo service apache2 restart
Listo!
Ejemplo para servidores Moodle con 32GB en RAM
opcache.enable = 1 opcache.memory_consumption = 512 opcache.max_accelerated_files = 10000 opcache.revalidate_freq = 60 ; Requerido para Moodle opcache.use_cwd = 1 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 0 ; Si algo no funciona en Moodle ;opcache.revalidate_path = 1 ; Puede arreglar problemas con rutas ''include'' ;opcache.mmap_base = 0x20000000 ; (Windows only) fix OPcache crashes with event id 487 ; Experimental para Moodle 2.6 y posteriores opcache.fast_shutdown = 1 opcache.enable_cli = 1 ;opcache.load_comments = 0 ; Puede disminuir el uso de memoria, puede no ser compatible con complementos y otras apps
Referencia: https://docs.moodle.org/all/es/OPcache