Libreria MCrypt su CentOS 7 con Plesk 12

La libreria MCrypt è necessaria per alcuni CMS molto diffusi, tra i quali ad esempio Magento. Ho scritto una guida tempo fa per installare la libreria su server dotati di CentOS 6, recentemente sono passato a dei nuovi VPS dotati di Plesk e CentOS 7 e ho preferito seguire una via più facile per l’installazione di MCrypt: le nuove versioni di Plesk (dalla 12 in poi) consentono di installare più versioni di PHP, dalla versione 5.4 in poi infatti la libreria MCrypt è disponibile. Se il nostro hosting è ancora impostato su un PHP 5.2 o 5.3 è sufficiente installare le nuove versioni di PHP tramite l’apposito strumento per gli aggiornamenti che trovate in Tools and Settings:

plesk php 5.6

plesk multi php

 

dopodichè potete entrare nella sottoscrizione che necessita della libreria e cambiare facilmente la versione di PHP assegnata:

plesk mcrypt

 

plesk_centos_mcrypt

La procedura è utile anche per CMS, plugin e in generale siti che necessitano il nuovo PHP, e vi consente di non dover installare e configurare nulla via SSH. Provato su Centos 7 e Plesk 12.

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 Plesk: “New configuration files for the Apache web server were not created due to the errors in configuration templates: mkdir: cannot create directory …”

Ecco un problema che si è presentato su Plesk (versione 12.0.18) rinominando, in una sottoscrizione, un dominio utilizzando la scheda Hosting Settings presente in Websites and Domains. Per esempio ipotizzeremo di rinominare il dominio simonezanella.com in simonezanella.it:
errore_pleskDopo l’operazione, Plesk mostra questo errore:
New configuration files for the Apache web server were not created due to the errors in configuration templates: mkdir: cannot create directory `/var/www/vhosts/system/simonezanella.it/conf': No such file or directory mktemp: failed to create file via template `/var/www/vhosts/system/simonezanella.it/conf/httpd.conf.XXXXXX': No such file or directory Can not create temporary file . Detailed error descriptions were sent to you by email. Please resolve the issues and click here to generate broken configuration files once again or here to generate all configuration files.
Cliccando come suggerito i problemi non vengono corretti, ma si visualizza il seguente errore:
Unable to configure the web server: Execution failed. Command: httpdmng Arguments: Array ( [0] => --reconfigure-all ) Details: Error occured while sending feedback. HTTP code returned: 502 Error occured while sending feedback. HTTP code returned: 502 Execution failed. Command: httpdmng Arguments: Array ( [0] => --reconfigure-domains [1] => simonezanella.com,simonezanella.it )

Anche rinominando la sottoscrizione originaria il problema rimane. Se non si ha a disposizione un backup della sottoscrizione in Plesk (ripristinandola il problema si risolve automaticamente), si seguono questi passi (verificare che il vostro problema sia esattamente lo stesso) una volta loggati via SSH al vostro server:

si verifica che la directory radice (root directory) per il dominio simonezanella.com non esiste, ovvero: “/var/www/vhosts/simonezanella.com/httpdocs” non è presente sul server, mentre la root directory per il dominio simonezanella.it invece esiste:
“/var/www/vhosts/simonezanella.it” ma manca la cartella httpdocs, ovvero: “/var/www/vhosts/simonezanella.it/httpdocs”

in /var/www/vhosts/simonezanella.it/ bisogna ora lanciare i seguenti comandi:

mkdir httpdocs
chown simone:psaserv httpdocs
chmod 750 httpdocs
mettendo al posto di simone ovviamente il vostro utente per la cartella, poi bisogna settare i valori corretti nel database del server nelle tabelle “hosting” e “sys_users” del database “psa”:
mysql> update hosting set www_root='/var/www/vhosts/simonezanella.it/httpdocs' where dom_id=3;
mysql> update sys_users set home='/var/www/vhosts/simonezanella.it' where id=2;
(verificate gli id nel database, i valori indicati sono di esempio, potete anche farlo direttamente da Plesk via PHPMyAdmin)
dopodichè si lancia il comando di riconfigurazione dominio:
/usr/local/psa/admin/bin/httpdmng --reconfigure-domain simonezanella.it

se tutto è stato fatto correttamente, il problema dovrebbe essere risolto.