[Joomla 5.2] Warning: Zend OPcache API is restricted by "restrict_api"
-
Salve, sto rifacendo da zero il mio sito con Joomla 5.2 (ero rimasta al 3.4). Ho esportato articoli, moduli, voci di menu e categorie. Per il resto sto lavorando su una copia pulita di Joomla con il tema figlio di Cassiopeia. Non sto utilizzando nessun componente esterno, niente terze parti.
Eppure quando navigo tra le pagine interne mi si presenta questo errore.Warning: Zend OPcache API is restricted by "restrict_api" configuration directive in /home/barbark/www/libraries/vendor/joomla/filesystem/src/File.php on line 337
Come Web Host sono su OVH, Versione Php 8.3.9 (ma ho provato anche anche altre versioni). Versione Database mysql 8.0.40-31.
Se metto il Server in modalità Produzione l'errore non si presenta.
Se lo metto in Sviluppo si presenta.Ho fatto tantissimi test, provando a smontare il tema figlio per verificare che non avessi fatto errori nella modifica.
Poi ho provato ad impostare come template principale Cassiopeia, e dà sempre quell'errore.Secondo voi cosa dovrei fare ? Contattare OVH ?
Grazie1000,
Barbara -
porrei la domanda a ovh, probabilmente c'è qualche impostazione php differente nei due ambienti, se funziona in produzione non dovrebbe essere un problema di joomla. Prova ad attivare il debug magari fornisce qualche info in più
-
Ciao @pstrada, grazie tanto per la pronta risposta, proverò sicuramente a fare le due cose, tra l'altro ho aperto con l'editor per vedere cosa c'è nel file 'File.php' (riga 337) e sembra proprio qualcosa che riguarda la Cache.
-
Aggiornamento. Ero lì per attivare la funzione "Debug di Sistema", quando mi sono accorta che c'è pure un'altra possibilità di gestione della Cache interna.
Configurazione Globale --> Sistema --> Cache di Sistema --> ho selezionalo l'opzione su "SI, Cache Unica Moderata".
Pare che non dia più quell'errore. Sono troppo contentaNon so ancora se creerà problemi in fase di sviluppo (nel non vedere in tempo reale le modifiche).
Ma intanto è un passo avantissimo
Grazie, Barbara
-
se sei in fase di sviluppo del sito puoi tranquillamente disattivare la cache (di qualsiasi tipo), per poi riattivarla, se necessario, una volta entrata in produzione.
-
Per capire bene i meccanismi di cache ti consiglio questo articolo del nostro Gianluca (jabba), che spiega molto bene i meccanismi di cache e quando/perchè utilizzarli.
https://www.pixed.it/pixed-blog/joomla/come-funziona-la-cache-di-joomla?highlight=WyJjYWNoZSJd
-
@pstrada il problema è che io uso 'anche' il mio Web-Host per sviluppare delle Landing Page statiche e non posso sempre stare ad Attivare/Disattivare la Cache Server.
Ma sarebbe comunque scomodo, perché tutte le volte che devo fare aggiornamenti al template (anche di natura esigua) dovrei disattivare la Cache, e pensa che imbarazzo se proprio in quel momento passa "un visitatore" e vede tutti quei messaggi di errori.Ho scritto "tutti quei messaggi di Errore" perché ieri, provando ad attivare le cache interna di Joomla (nelle varie opzioni possibili), i messaggi di Errore sono quadruplicati. Un Mascello. Quindi devo smentire quello che scritto nel messaggio precedente e tornare di punto a capo.
Il messaggio di errore scompare solo se attivo la Cache del Server. La Cache di Joomla non funziona (perlomeno con questo problema). -
@pstrada Sì, ho letto stamattina, qualcosa già sapevo, ma devo comunque approfondire. Grazie.
-
Ciao, l'errore è dovuto al modulo OPCache di PHP del server: è attivo (di default a quanto pare) e quindi Joomla non può chiamare certe funzioni di OPcache (come ad esempio
opcache_invalidate()
oopcache_compile_file()
) a meno che non si trovi in un certo percorso specificato.Secondo me puoi risolverla in 3 modi:
-
Brutale, ignora e nascondi l'errore: è solo un warning quindi non è bloccante: dentro la tua configurazione globale di joomla -> tab server -> Rapporto errori: "nessuno". Non verrà più mostrato alcun warning.
Se vedi ancora errori può essere siano forzati da php: se puoi farlo (dipende da OVH) modifica il php.ini del tuo server mettendo 0 (zero) all'error reporting. Qui un esempio. -
Meno brutale: puoi disattivare il restrict da php.ini ( https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.restrict-api ). Sempre se hai accesso al php.ini del tuo server ci vai dentro, trovi questa stringa
opcache.restrict_api = /some/path
e la commenti mettendoci un ; davanti:;opcache.restrict_api = /some/path
-
Sistemando il path: questa è la soluzione migliore ma bisogna aver accesso alle configurazioni del server, mi sa che si possa fare solo con un server dedicato e non in uno shared hosting. Dovresti spostare il sito in una cartella che sia all'interno del restricted path, in modo da non lanciare l'errore.
Il mio consiglio è quello di disabilitare i warning e amen: non sono bloccanti nè fatali e joomla core, soprattutto con versioni di PHP recenti tipo 8.3/8.4 ne lancia parecchi (vedi anche ultima patch dove uno dei fix è semplicemente la rimozione di un warning di compatibilità php).
Ciao,
Gianluca -
-
Ciao @jabba, ma Grande !!! 🤩 Non sai quanto sia prezioso per me questo tuo intervento.
Anzitutto mi hai proposto 3 soluzioni ed inoltre mi hai rassicurato che questo non è un errore 'né bloccante né fatale per il Core Joomla.
Non so davvero come RingraziartiGrazie di nuovo,
Ciao! Barbara -
Prego figurati
Per la cache se hai bisogno di qualche info più dettagliata con qualche esempio e test "live" avevo fatto un video a riguardo, che trovi qui: https://www.youtube.com/watch?v=ILaDuaTvcJY
Buon lavoro! -
Grazie Milla @Jabba, me lo guardo di sicuro questa sera con calma
Ciao e Buon Lavoro a Te!
Barbara