Problema a ripristinare corso

Problema a ripristinare corso

di Francesco AP -
Numero di risposte: 33

Salve, ho un piccolo problema a ripristinare un corso di notevoli dimensioni.

Utilizzo Moodle 3.7

Quando vado su ripristino mi dice:


Errore

Si è verificato un errore durante la connessione al server

ho provato a caricare il file su server e utilizzare scaricamento url ma mi spunta questo errore: 

SyntaxError

JSON Parse error: Unexpected EOF


Che posso fare??? è molto importante recuperare questo corso

Grazie
Media dei voti:  -
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Francesco AP -
ho aggiornato a 3.9 ma il problema rimane lo stesso.... help me triste triste
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Giorgio Riva -

Buongiorno,

ma il problema si presenta al caricamento del file di backup o nel ripristino? Il file quanto è grande? E' un backup versione 3.7?

Ha modo di aumentare il livello di debug?

Giorgio

In riposta a Giorgio Riva

Ri: Problema a ripristinare corso

di Francesco AP -
Ciao, grazie della risposta.

Praticamente vado nell'area per ripristinare il corso, non riesco a caricarlo dove fa fare il drag & drop, provo a selezionare scegli file ma su scaricamento url mi da quell'errore.

Il file pesa 20Gb

Ha modo di aumentare il livello di debug? >> Non so cosa sia, se mi dici come fare provvedo. Grazie
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Giorgio Riva -
Ok, il problema è sicuramente la dimensione del file di backup. E' effettivamente enorme. Chi gestisce il server su cui è ospitata la piattaforma che usi? Dato che hai aggiornato alle 3.9 immagino avrai una qualche autorizzazione a livello di sistema.

Per aumentare il livello di DEBUG segui queste istruzioni: https://docs.moodle.org/39/en/Debugging#Enabling_debugging
Potrebbe essere anche utile verificare le tue impostazioni di PHP. La pagina PHP info la trovi in Site administration > Server > PHP info

Detto questo, con quel file avrai sicuramente molti problemi. Non hai modo di fare backup più piccoli? Cosa occupa così tanto spazio?

Giorgio
In riposta a Giorgio Riva

Ri: Problema a ripristinare corso

di Francesco AP -
no, il sito è su aruba quindi non è che so più di tanto, ho seguito la procedura per l'aggiornamento. La versione PHP è 7.2.26

Non posso fare un backup più piccolo perché questo corso lo avevo su un altro sito che stava caricato su un altro hosting tipo 1 anno fa.... ora quello non c'è più e dovevo caricarlo su questo nuovo (se devo rifare tutto il corso penso mi sparo XD, tra le altre cose erano pacchetti scorm che via via caricavamo, pensavo che avendo il backup ero apposto invece conveniva conservarsi anche tutti i file singolarmente mi sa).

Ora seguo la procedura che dice per il Debug. Fatto ciò cosa succede? che vedo gli errori che genera?

Grazie sempre
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Giorgio Riva -
Non sono esperto di Aruba e non so se è possibile modificare le configurazioni di PHP. Magari qualcun altro può intervenire.
Sarebbe utile vedere il PHP info. Difficile comunque che supporti l'upload di 20GB di file, sia come dimensione massima che come tempo di elaborazione.

Aumentando il livello di debug almeno si dovrebbero vedere informazioni maggiori sull'errore.

Giorgio
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Grazia Cesarini -

Anch'io uso Aruba e di solito i corsi pesanti li carico a pezzi. Su Aruba so per certo che si può intervenire sulla versione di PHP ma sul peso non credo. Ora ci guardo poi ti faccio sapere.

Sei su Linux o su Windows.

Grazia

In riposta a Grazia Cesarini

Ri: Problema a ripristinare corso

di Grazia Cesarini -

PHP.INI

Dovresti intervenire su PHP.INI (io uso Linux quindi quello che ti mostro è relativo a Linux) ma il massimo che puoi raggiungere è 300M.

Per vedere da Moodle il PHP.info vai su Dashboard > Amministrazione del sito > Server > PHP info

Grazia

In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Francesco AP -
Scusate ma perché caricando il file via FTP non riesco a visualizzarlo tra i file presenti direttamente nel server quando su moodle vado su Ripristino > Scegli File > File sul Server ? Non c'è un modo per farlo comparire direttamente così essendo già sul server non avrei problemi di caricamento?
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers

Devi abilitare il "File System" repository, come indicato qui: https://docs.moodle.org/39/en/File_system_repository

In riposta a Sergio Rabellino

Ri: Problema a ripristinare corso

di Francesco AP -

ho seguito la guida

- ho creato dentro la cartella Repository una cartella

- ho abilitato File System

- sono andato su Impostazione> Crea una istanza di Repository

- metto il nome, clicco salva ma mi ricarica sempre la stessa pagina dove inserire il nome.... boh... 

comunque dice anche questo: Per poter scegliere una cartella, devi crearne almeno una all'interno della cartella /web/htdocs/www.xxx.it/moodledata/repository/

io ho creato la cartella dentro Repository... (moodledata non esiste ma penso sia la cartella di moodle no?)

In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Grazia Cesarini -

Come... moodledata deve esistere altrimenti i dati dove stanno? La cartella moodle contiene i "programmi", moodledata di "dati". Tu puoi avrele anche rinominate ma ci devono essere entrambe.  Se non ti ricordi esattamente, dentro config.php ci sono i nomi che hai usato. 

Io per esempio ho più o meno questa situazione:

$CFG-> httpswwwroot = '.../moodle391';

$CFG->dataroot  = '.../moodledata391';

In riposta a Grazia Cesarini

Ri: Problema a ripristinare corso

di Francesco AP -
$CFG->dataroot = '/web/htdocs/www.xxx.it/moodledata';

ti assicuro che mi collego via ftp e non ci sta questa cartella.... infatti non riesco a capire n'dò stanno i dati che ho caricato... XD
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers
Moodle senza una cartella dataroot (che tutti amichevolmente chiamamo moodledata, come il default da "sempre") semplicemente non può funzionare, quindi da qualche parte ci deve pur essere...
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Grazia Cesarini -

Se per caso hai fatto l'installazione con Aruba puoi aver usato Softaculous  e quindi dovresti trovare una cartella "softaculous" e moodledata lo trovi li dentro.

Dal tuo config sembra che moodledata non sia stato rinominato e si trovi nella root del tuo sito. Se per l'FTP usi filezilla o simili prova a fare una ricerca oppure prova dal file mangar di Aruba... 

Se il sito funziona, moodledata non può non esserci!  

Ciao

Grazia

In riposta a Grazia Cesarini

Ri: Problema a ripristinare corso

di Francesco AP -
Allora, praticamente è su root e quindi di default Aruba non la fa vedere. Ho chiesto un intervento tecnico per renderla visualizzabile....ancora sto aspettando... speriamo si muovo perché vorrei provare la soluzione proposta qui >> https://moodle.org/mod/forum/discuss.php?d=207287

In ogni caso riuscendo a rendere visibile il file su moodle poi dovrebbe riuscire ad eseguirlo anche se di tanti GB no?
In riposta a Grazia Cesarini

Ri: Problema a ripristinare corso

di Francesco AP -
Aruba mi ha sistemato la cartella, Ho provato il sistema ed effettivamente Moodle vede il backup, inizia la fase, mi fa selezionare il tutto, lancia lo script ma arrivato a Preparazione Dati si ferma a 50% .... triste triste Qualche soluzione ora per questo "blocco" ? Peccato, era quasi riuscito il tutto.
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers

Ma hai aspettato un po' di tempo senza toccare nulla ?

Se si, allora io guarderei nei log del webserver per capire quale sia l'errore (disk full ?).

In riposta a Sergio Rabellino

Ri: Problema a ripristinare corso

di Francesco AP -
ho lasciato circa 3 ore visto era un backup di 20Gb ma niente... rimasto fisso a 50%

come spazio web è illimitato. In ogni caso come faccio a. vedere questi log??? Grazie
In riposta a Sergio Rabellino

Ri: Problema a ripristinare corso

di Francesco AP -
ecco gli errori:

01/09/2020 10:24:30 [error] [client ] - www..it - AH01215: PHP Warning: include(/web/htdocs/www..it/home/repository/filecorsi/version.php): failed to open stream: No such file or directory in /web/htdocs/www..it/home/lib/classes/plugin_manager.php on line 314: /web/htdocs/www..it/home/admin/search.php, referer http://www..it/admin/settings.php?section=debugging
01/09/2020 10:24:30 [error] [client] - www..it - AH01215: PHP Warning: include(/web/htdocs/www..it/home/repository/filecorsi/version.php): failed to open stream: No such file or directory in /web/htdocs/www..it/home/lib/classes/plugin_manager.php on line 314: /web/htdocs/www..it/home/admin/search.php, referer http://www..it/admin/settings.php?section=debugging
01/09/2020 10:24:30 [error] [client] - www..it - AH01215: PHP Warning: include(): Failed opening '/web/htdocs/www..it/home/repository/filecorsi/version.php' for inclusion (include_path='/web/htdocs/www..it/home/lib/pear:.:/php7.4/lib/php') in /web/htdocs/www..it/home/lib/classes/plugin_manager.php on line 314: /web/htdocs/www..it/home/admin/search.php, referer http://www..it/admin/settings.php?section=debugging
01/09/2020 10:24:29 [warn] [client] - www..it - AH01220: Timeout waiting for output from CGI script /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:24:29 [error] (70007)The timeout specified has expired: [client] - www..it - AH00574: ap_content_length_filter: apr_bucket_read() failed, referer http://www..it/backup/restore.php
01/09/2020 10:24:29 [error] [client] - www..it - AH01215: PHP Warning: include(/web/htdocs/www..it/home/repository/filecorsi/version.php): failed to open stream: No such file or directory in /web/htdocs/www..it/home/lib/classes/component.php on line 1139: /web/htdocs/www..it/home/admin/search.php, referer http://www..it/admin/settings.php?section=debugging
01/09/2020 10:24:29 [error] [client] - www..it - AH01215: PHP Warning: include(/web/htdocs/www..it/home/repository/filecorsi/version.php): failed to open stream: No such file or directory in /web/htdocs/www..it/home/lib/classes/component.php on line 1139: /web/htdocs/www..it/home/admin/search.php, referer http://www..it/admin/settings.php?section=debugging
01/09/2020 10:24:29 [error] [client] - www..it - AH01215: PHP Warning: include(): Failed opening '/web/htdocs/www..it/home/repository/filecorsi/version.php' for inclusion (include_path='/web/htdocs/www..it/home/lib/pear:.:/php7.4/lib/php') in /web/htdocs/www..it/home/lib/classes/component.php on line 1139: /web/htdocs/www..it/home/admin/search.php, referer http://www..it/admin/settings.php?section=debugging

01/09/2020 10:09:15 [error] [client ] - www..it - AH01215: loading controller from db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:15 [error] [client ] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:15 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:15 [error] [client] - www..it - AH01215: setting controller status to 600: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:15 [error] [client] - www..it - AH01215: saving controller to db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:15 [error] [client] - www..it - AH01215: calculating controller checksum 8cfb08c77c5d070c675482c7bbdcfc28: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:15 [error] [client] - www..it - AH01215: loading controller from db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:06 [error] [client] - www..it - AH01215: loading controller from db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:06 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:06 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:06 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:06 [error] [client] - www..it - AH01215: saving controller to db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:09:06 [error] [client] - www..it - AH01215: calculating controller checksum 985eb10b77607ced5fe736a7a9b0d609: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:08:37 [error] [client] - www..it - AH01215: loading controller from db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:08:37 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:08:37 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:08:37 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:08:37 [error] [client] - www..it - AH01215: saving controller to db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:08:37 [error] [client] - www..it - AH01215: calculating controller checksum 8304c15da597b16a13dd031a824b1afd: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:07:56 [error] [client] - www..it - AH01215: checking plan security: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:07:56 [error] [client] - www..it - AH01215: saving controller to db: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
01/09/2020 10:07:56 [error] [client] - www..it - AH01215: calculating controller checksum 387660bafbf2d5dc3b4b742e33d6ba2a: /web/htdocs/www..it/home/backup/restore.php, referer http://www..it/backup/restore.php
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Matteo Scaramuccia -

Ciao Francesco,
la prima cosa da fare è spostare la cartella del Repository di tipo File system perché tu l'hai messa "apparentemente" all'interno del codice di Moodle e non nella cartella repository/ come descritta in https://docs.moodle.org/39/en/File_system_repository#Creating_folders_for_your_file_system_repositories , cioè figlia della "moodledata" ($CFG->dataroot)... a meno che tu non abbia un plug-in di tipo repository "personalizzato" ma rotto e che si chiama filecorsi: /web/htdocs/www..it/home/repository/filecorsi/version.php.

Lo stato 600 indicato nei log si riferisce a STATUS_NEED_PRECHECK che è una fase di verifica per il backup in ripristino.

Nota: da tutto il thread vedo che si parla della 3.9 e dai log leggo che stai usando PHP 7.4. Nel caso tu avessi plug-in terze parti potrebbero non essere ancora compatibili con PHP 7.4 - lo vedremo probabilmente nei log successivi.

HTH,
Matteo

In riposta a Matteo Scaramuccia

Ri: Problema a ripristinare corso

di Francesco AP -
si, purtroppo. Aruba aveva "nascosto" la cartella, ora ho sistemato nella cartella giusta, messo anche su moodle il repository filesystem ma continua a dare quell'errore

plugin sostanzialmente non ne uso.

per far. vedere il backup a moodle ho praticamente fatto un backup del corso vuoto, ho visto qual era il file e l'ho poi sostituito con quello "vecchio" rinominando il file con il nome del backup vuoto.( /moodledata/filedir/xx/xx/) fatto così moodle lo vede e fa iniziare la procedura ma poi si blocca di nuovo anche sistemando la cartella che mi hai detto.
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers
A parte quanto ti ha fatto notare giustamente Matteo, direi che il tuo problema è il timeout dell'operazione, cioè il sistema interrompe "motu proprio" l'attività di restore perchè ritenuta troppo lunga in termini di tempi di esecuzione.
Vista la dimensione non mi stupisce e l'unico modo che hai di intervenire sarebbe sulla configurazione di PHP, aumentando (anche solo temporaneamente) questo tempo (cfr. https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time).
Alternativamente bisognerebbe operare da CLI come ad esempio con https://moodle.org/plugins/tool_brcli oppure con Moosh (https://moosh-online.com/)  ma appunto prevedono che tu sia in grado di accedere via SSH al tuo server ed eseguire script php.
In riposta a Sergio Rabellino

Ri: Problema a ripristinare corso

di Francesco AP -
quindi dovrei passare ad un server vps in modo da poter cambiare determinati parametri? In ogni caso non sarei in grado quindi ci vorrà l'intervento di qualcuno un pò più esperto.... sapete indirizzarmi in caso a qualche servizio che non richieda un dissanguamento economico? triste
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Sergio Rabellino -
Immagine Particularly helpful Moodlers Immagine Plugin developers

Esiste la "zona" dei job requests (http://moodle.org/jobs) dove puoi postare una offerta di lavoro, oppure rivolgerti ai moodle partners per una consulenza.

Per il resto, le variabili (e i problemi) sono talmente tanti che ciascuno credo debba effettuare tale scelta in autonomia.

In riposta a Sergio Rabellino

Ri: Problema a ripristinare corso

di Francesco AP -
Ok grazie, vediamo se qualcuno risponde. L'unica società italiana non fornisce supporto a chi già non è loro cliente....
In riposta a Francesco AP

Ri: Problema a ripristinare corso

di Matteo Scaramuccia -

Ciao Francesco,

per far. vedere il backup a moodle ho praticamente fatto un backup del corso vuoto, ho visto qual era il file e l'ho poi sostituito con quello "vecchio" rinominando il file con il nome del backup vuoto.( /moodledata/filedir/xx/xx/) fatto così moodle lo vede e fa iniziare la procedura ma poi si blocca di nuovo anche sistemando la cartella che mi hai detto.

Mmmhhh, capisco la buona intenzione ammiccante ma hai "violato" la consistenza del Pool di File registrati nello Deposito di Moodle: dentro filedir/ sono infatti registrati tutti i file che Moodle usa secondo un hash che ne descrive il contenuto e comanda quale siano le due sottocartelle dove registare quel file - Rif: https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk .

Dovrei guardare il codice per capire se questo sia il vero problema ma in questi giorni non credo di riuscirci... detto questo la procedura più corretta (operazione avanzata) per sostituire un file nel pool è la seguente:

  1. Calcoli l'hash del file in locale utilizzando una utility per Windows o installando ad esempio Git Bash per avere una shell "linux" con cui calcolare questo hash:
    $ sha1sum <nome file backup>
  2. Uploadi il file in filedir/ nella subdirectory più opportuna per Moodle per cui se l'hash calcolato risulterà da39a3ee5e6b4b0d3255bfef95601890afd80709 allora dovrai caricare il file in filedir/da/39/ con il nome da39a3ee5e6b4b0d3255bfef95601890afd80709
  3. Individui il file così come descritto su DB nella tabella mdl_files cercando il record che punti al tuo "file di backup del Corso Vuoto" alla colonna filename
  4. Aggiorni la colonna contenthash del record appena trovato in (3) con il valore calcolato in (1) e i il valore della colonna filesize con la dimensione reale del file in byte (ad esempio: $ stat <nome file backup>)
  5. Riprovi a effettuare il ripristino (il nome file logico è invariato ma punta ora ad un file fisico "differente") ma prima attiva il Debug di Moodle a livello SVILUPPATORE per catturare eventuali errori che ci possa dare più informazioni
    • Non è necessario rimuovere il file precedente, rimarrà orfano - non ha più riferimenti nella tabella mdl_files - ma se piccolo non ti occuperà spazio; altrimenti, rimuovilo pure dal file system

Peccato che tu non abbia accesso alla shell per gestire il tuo spazio perché oltre agli strumenti citati c'è anche https://github.com/mudrd8mz/moodle-toolbox#mbz-moodle-backups che è interessante perchè oltre alla facilità di ripristinare una serie di corsi usando i nomi dei file di backup che si trovano in una data cartella, riporta i messaggi circa gli eventuali problemi durante la fase di "precheck".

HTH,
Matteo

In riposta a Matteo Scaramuccia

Ri: Problema a ripristinare corso

di Francesco AP -
Grazie, ho seguito tutto e si blocca stesso punto.

ho attivato debug e non compare nulla. Solo lato server sempre gli stessi errori.

Sto vedendo di passare ad un VPS così dovrei poter agire in modi diversi no?
In riposta a Matteo Scaramuccia

Ri: Problema a ripristinare corso

di Cosmo Furno Palumbo -

@Matteo,
cortesemente, dato che sto riscontrando anch'io qualche problema nel ripristino dei corsi da una vecchia ad una nuova installazione, ho letto con interesse il tuo intervento; prima, però, di mettere le mani sui settari PHP, stavo valutando soluzioni alternative.

Potresti cortesemente darmi qualche dettaglio in più circa il tool di cui parlavi: mhz-moodle-backups?

In particolare, da neofita, non mi è chiara la sintassi da seguire...

$ sudo -u apache php mbz-restorecourses.php \ 
--sourcedir=/path/to/folder/ \ 
--categoryid=1 --userid=2

Di fatto io generalmente, effettuo il backup con il pannello di Moodle direttamente e ripristino sempre attraverso Moodle.

Grazie in anticipo...