500 Internal server error durante l’aggiornamento del database di WordPress

500-internal-server-error

Un errore durante l’aggiornamento all’ultima versione di WordPress (4.2.1) mi ha causato un grosso problema su un sito: nel dettaglio provando ad accedere alla bacheca di amministrazione compare il  messaggio (tipico dopo gli aggiornamenti più importanti di WordPress):

E’ richiesto l’aggiornamento del database:
WordPress è stato aggiornato! Prima di proseguire, dobbiamo aggiornare il database alla nuova versione.

e dopo aver lanciato l’aggiornamento, il server restituisce dopo un po’ di minuti l’errore “500 Internal Server Error”. Il tutto si ripete ad ogni tentativo di aggiornamento, rendendo impossibile accedere alla bacheca di WordPress.

Dopo aver consultato a fondo la guida di WordPress, l’unica soluzione trovata (nella rete si trovano diverse guide, ma sono quasi tutte legate a WordPress installati su hosting commerciali tipo Aruba)  è stata  modificare manualmente nel database la versione del database corrente.  Se avete accesso al pannello di gestione del database del vostro sito (tipicamente phpMyAdmin o simili), dovete cercare nella tabella wp_options il campo db_version:

wordpress-500-server-error

il valore numerico sostituendolo con il valore che trovate a questa pagina, in cui si trovano i codici relativi alla versione del database rapportati alla versione corrente di WordPress (ovvero quella cui avete aggiornato prima dell’errore).

forzare upgrade database wordpress

Dopo aver effettuato la modifica, WordPress ha ripreso a funzionare perfettamente, sono stati provati ulteriori aggiornamenti di WordPress, temi e plugin con successo.

Versione di WordPress pre-aggiornamento: 4.2 Italiano

Versione dell’aggiornamento: 4.2.1 Italiano

Problema pagina manutenzione WordPress

wordpress_manutenzione

Nel caso durante un aggiornamento di WordPress qualcosa vada storto, e il vostro sito si blocchi sulla schermata bianca con la frase “WordPress Momentaneamente non disponibile per manutenzione. Riprovare fra un minuto” la soluzione è collegarsi via FTP al vostro spazio web, e rimuovere manualmente il file .maintenance che si trova nella directory principale. Il sito tornerà subito visibile. Occorre controllare che alcuni plugin o temi che stavate aggiornando siano ancora attivi, può capitare che siano disabilitati o corrotti a seguito del fallimento dell’operazione di aggiornamento.

maintenance

 

Convertire sito multilingua in WordPress da qTranslate a WPML

wpml_logoCome molti programmatori che usano spesso WordPress per i propri lavori (personali, come questo blog, o commerciali), ho avuto necessità di creare e gestire più lingue all’interno dei siti. Tra i vari plugin nel web, i più usati sono generalmente QTranslate (gratuito) e WPML (a pagamento). Qtranslate è stata inizialmente la prima scelta, dovuta al fatto che gestisce bene i contenuti multilingua, ed è gratuito. Tuttavia, non si è rivelato affidabile per siti commerciali, in quanto spesso non viene aggiornato tempestivamente ad ogni nuova release di WordPress. Per questo motivo da circa 2 anni mi affido all’ottimo e potente WPML.

Cosa fare però dei siti creati in QTranslate? Ecco una guida veloce per effettuare il trasferimento da un plugin all’altro:

  1. Scaricare WPML dal sito ufficiale
  2. Scaricare il plugin qTranslate Importer: http://wordpress.org/plugins/qtranslate-to-wpml-export/ (al momento il plugin segnala compatibilità fino alla versione 3.6.1 di WordPress, io l’ho testato con la versione 3.8.2 e ha funzionato perfettamente Aggiornamento del 3/9/2014: il plugin è stato aggiornato alla versione 1.3 e ora anche il sito dichiara la compatibilità).
  3. Effettuare un backup completo del Database del vostro sito WordPress.
  4. Disattivare qTranslate
  5. Installare ed attivare WPML, senza configurarlo: il plugin di importazione si occuperà di farlo, con una procedura guidata.
  6. Installare il qTranslate Importer
  7. Avviare il qTranslate Importer e seguire le indicazioni passo-passo.

Al termine, sarà necessario molto probabilmente eseguire alcune modifiche al file .htaccess (vi verranno mostrate a schermo dall’importer)

Inoltre, consiglio di verificare ogni pagina del sito: purtroppo alcune non vengono ripulite completamente, e presentano tutte le lingue in una schermata unica. Un semplice (dipende dal sito) lavoro di copia & incolla sarà sufficiente per ripristinare le pagine mancanti, oppure si può ricorrere al plugin di traduzione delle stringhe di WPML (lo trovate nel vostro account WPML tra i download a disposizione).

La procedura descritta è stata provata e verificata su WordPress 3.8.2, qTranslate 2.5.39qTranslate Importer 1.2 e WPML 3.1.4.

Aggiornamento del 3/9/2014: testato funzionante (e migliorato!) su WordPress 3.9.2, qTranslate 2.5.39qTranslate Importer 1.3 e WPML 3.1.4.