Autore: Lobotomia

  • Come aggiornare da MySQL 5.5. a 5.6 in Plesk con CentOS

    Se avete Plesk su CentOS molto probabilmente sul vostro server è installata l’ormai vecchio MySQL 5.5, volete passare ad una più aggiornata versione MySQL 5.6 o MariaDB 10? Ecco la guida come fare passo passo per le varie distribuzioni!

    La prima cosa da fare, come sempre, è di effettuare uno snapshot del server ed un backup completo sia del sistema che dei database, mettendosi così le spalle al coperto.

    Plesk su CentOS 6

    La prima cosa da fare è stoppare il servizio MySQL con il comando:

    service mysqld stop

    Effettuare quindi il backup dei database MySQL databases:

    mkdir /var/lib/mysqlcopy

    cp -aR /var/lib/mysql/* /var/lib/mysqlcopy

    Disabilitare il repository Atomic repository, se abilitato, modificando il file /etc/yum.repos.d/atomic.repo, ad esempio con l’editor vi :

    vi /etc/yum.repos.d/atomic.repo

    settando enabled a 0 nel seguente modo: enabled = 0

    Installare il repository MySQL-community:

    yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

    Disabilitare l’upgrade a MySQL 5.7 ed abilitare l’aggiornamento a MySQL 5.6 modificando il file /etc/yum.repos.d/mysql-community.repo, potete farlo sempre con l’editor vi:

    vi /etc/yum.repos.d/mysql-community.repo

    Impostando i seguenti valori:
    [mysql56-community]
    enabled=1
    [mysql57-community]
    enabled=0
    Installate il pacchetto MySQL:

    yum install mysql

    Avviarte il servizio MySQL:

    service mysqld start

    Aggiornare i database MySQL, per effettuare l’upgrade basta usare il comando:

    MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin psa

    Plesk su CentOS 7

    Su CentOS 7 tipicamente è installato, di default, MariaDB. MariaDB 10.x è una valida alternativa a MySQL 5.5/5.6.
    Logicamente la prima cosa da fare e salvare i propri dati, per farlo basta effettuare il backup di tutti i database esistenti usando l’articolo della knowledge base KB#213904125 degli sviluppatori del DMBS e seguire le istruzioni di aggiornamento di MariaDB per i sistemi basati su yum: https://mariadb.com/kb/en/mariadb/yum/.

    A questo punto, effettuato l’upgrade di MariaDB, basta eseguire il comando in Plesk:

    plesk sbin packagemng -sdf

    Inoltre è necessario disabilitare, se abilitato, il servizio MySQL in sysV, in modo da evitare duplicati al boot di sistema. Per fare ciò basta eseguire il comando:

    chkconfig mysql off

    A questo punto avete MariaDB 10.x è installato e pronto all’uso.

  • Come aggiornare da MySQL 5.5. a 5.6 in Plesk con Ubuntu o Debian

    Avete l’ormai datato MySQL 5.5 nella vostra installazione Plesk installata su una distribuzione Ubuntu o Debian e volete passare ad una più aggiornata versione MySQL 5.6 o MariaDB 10? Ecco la guida come fare passo passo per le varie distribuzioni!

    Innanzitutto per qualsiasi sistema state aggiornando la raccomandazione principale è quella di effettuare uno snapshot del server ed un backup completo sia del sistema che dei database.

    Plesk su Ubuntu 12.04, Ubuntu 14.04, Debian 7

    Creare un backup di /etc/mysql/my.cnf :

    cp /etc/mysql/my.cnf{,_original}

    Aggiungere il Repository MySQL APT:

    Dalla pagina del repository APT di MySQL http://dev.mysql.com/downloads/repo/apt/ si selezioni e scarichi il pacchettorelativo alla propria piattaforma. Nel momento in cui scriciamo potete scaricare l’ultimo pacchetto mediante il comando:

    wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb

    Installare quindi, tramite dpkg, il pacchetto scaricato, nel nostro caso basterà il comando:

    dpkg -i mysql-apt-config_0.6.0-1_all.deb

    Nel corso dell’installazione del pacchetto verrà chiesto di scegliere quale versione di MySQL server e quali altri componenti si vogliano installare. Nel caso non siete sicuri di cosa scegliere lasciate tranquillamente le opzioni di default già selezionate. Sarà possibile anche selezionare nessun componente se non si ha necessità di alcun componente aggiuntivo. Una volta fatte le scelte per tutti i componenti scegliete Applica e continuate la configurazione ed installazione del pacchetto MySQL.

    Aggiornate ora le informazioni del pacchetto dal repository APT MySQL, facendo un update mediante il comando:

    apt-get update

    Aggiornate MySQL server facendo un upgrade con il comando:

    apt-get install mysql-server

    Accettate quando vi viene richiesto di aggiornare il file /etc/mysql/my.cnf

    A questo punto entrare nel pannello di controllo di Plesk ed andare in Strumenti ed Impostazioni (Tools & Settings) > Cpmonenti del Server (Server Components) e cliccare su aggiorna (Refresh).

    Ora ci tocca aggiornare i database MySQL, che possiamo fare tramite il comando:

    MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin psa

    A questo punto avete l’installazione dei MySQL Server 5.6 pronta all’uso.

    Plesk su Debian 8

    In Debian 8 normalmente è installatato MariaDB. MariaDB 10.x è la versione che sostituisce MySQL 5.5/5.6.
    Vi invitiamo ad effettuare il backup di tutti i database esistenti usando l’articolo della knowledge base KB#213904125 degli sviluppatori del DMBS: https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/ e seguire le istruzioni sul sito stesso per aggiornarlo.

    Una volta effettuato l’aggiornamento non vi resta che dal server Plesk eseguire dalla riga di comando:

    plesk sbin packagemng -sdf

    A questo punto avete l’installazione dei MariaDB 10.x pronta all’uso.

  • Risolvere l’errore di Apache “seg fault or similar nasty error detected in the parent process” su Plesk

    Può capitare in sistemi in cui è installato Plesk 12.5, basati su Debian o Buntu, che durate la rotazione dei file di log di Apache vi sia un mancato riavvio del Web Server, causato dall’errore “seg fault or similar nasty error detected in the parent process“, vediamo come risolvere come segnalato dal teram di Odin nell’ID risolutivo 128431.

    Sintomi

    Apache va in crashe risportando il seguente errore in /var/log/apache2/error.log:
    [Tue Dec 01 07:04:28.504284 2015] [mpm_event:notice] [pid 20056:tid 140176783820672] AH00493: SIGUSR1 received. Doing graceful restart
    [Tue Dec 01 07:04:28.933380 2015] [core:notice] [pid 20056] AH00060: seg fault or similar nasty error detected in the parent process

    Causa

    L’errore è dovuto al reload della configurazione di Apache ed ad un suo successivo crash. E’ un problema noti di Apache 2.4 per le distribuzioni basate su Debian, come riportato dal Bug #1416875 apache-2.4.10 dies in reload.

    Soluzione

    Al momento l’unica soluzione possibile è utilizzare il seguente workaround:

    1. Sostituire ‘reload‘ con ‘restart‘ nel file ‘/etc/logrotate.d/apache2‘.
    2. Aumentare il valore Apache restart interval nelle impostazioni presenti in Home > Strumenti e Impostazioni > Apache Web Server, inserendo come valore almeno 60 secondi.

    Non dovreste così avere più alcun problema

  • Convertire gli Short Tag PHP in Tag Completi ricorsivamente

    Chi usa PHP si sarà spesso imbattutto nella diatriba Short Open Tag si o no (da <? a <?PHP), spesso trovandosi a combattere con codice di programmazione scritto da altri e con la difficoltà nel poterlo utilizzare.
    Per chi non lo sapesse, si sta parlando dei tag di apertura e chiusura di un codice scritto in linguaggio PHP, racchiuso quindi tra <?php?>, gli short tag sono la forma abbreviata, indicata con <??>, ed il cui utilizzo è sconsigliato poichè per il corretto funzionamento è necessario che la direttiva short_open_tag sia esplicitamente abilitata.

    Può così capitare che vi sia la necessità, per una migrazione di server, un aggiornamento di PHP, o solo per comodità, praticità e leggibilità che si voglia passare un codice da short tag in full tag, compito noioso e tedioso se fatto manualmente, ecco quindi un rapido metodo su come convertire facilmente in modo ricorsivo tutti gli short tag. Per farlo vi basterà usare la bash e scrivere a riga di comando questa serie di comandi con l’espressione regolare (regex) appropriata:

    find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\?(?!php|=|xml|mso| )/<\?php /g'

    oppure nel qual caso vi sia uno spazio dopo il <? potrete usare la seguente serie di comandi:

    find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\? /<\?php /g'

    A questo punto avrete i vostri file pronti per l’utilizzo.

  • Backup e Restore di file di grandi dimensioni in Plesk

    Plesk offre un valido strumento di Backup e Restore dei siti presenti nel sistema, addirittura in Plesk 12.5 è finalmente presente il backup incrementale ed è favvero molto efficiente, ma se volete effettuare il restore di siti di grandi dimensioni. e magari avete il disco con la partizione di root (la /) di piccole dimensioni, potreste avere il problema dello spazio su disco esaurito, vediamo come evitare questo problema in pochi semplici passi.

    1. Stoppare il servizio Plesk

      /etc/init.d/psa stop

    2. Creare la directory tmp

      mkdir /var/lib/psa/tmp

    3. Impostare i permessi

      chown psaadm:psaadm /var/lib/psa/tmp
      chmod 755 /var/lib/psa/tmp

    4. Rimuovere la directory tmp dalla directory PMM

      rm -R /usr/local/psa/PMM/tmp

    5. Create un link simbolico per la suddetta directory

      ln -s /var/lib/psa/tmp /usr/local/psa/PMM/tmp

    6. Modificare con il proprio editore preferito il file psa.conf

      vi /etc/psa/psa.conf

    7. Sostituire nella configurazione il valore di DUMP_TMP_D con /var/tmp
    8. Riavviare il server Plesk

      /etc/init.d/psa start

  • Come rimuovere con Vi/Vim il carattere ^M alla fine dei file

    Vi sarà capitato in sistemi Unix/Linux di aprire file di testo, script etc, e trovare alla fine di ogni riga il carattere ^M, che diversamente da quanto si può pensare non è qualcosa di inserito erroneamente, ma è il carriage return, cioè il ritorno a capo, per come, diversamente dai sistemi Windows, viene gestito nella codifica dei sistemi UNIX e Linux, e che corrisponde alla combinazione di tati CTRL+M.

    Per rimuovere i caratteri ^M alla fine di ogni riga mediante l’uso di Vi (o Vim), basta usare il seguente comando nella modalità comando, cioè la modalità di avvio di vi/vim, ottenibile tramite la pressione del tasto ESC:

    :%s/^V^M//g

    Il carattere ^V è dato dalla combinazione di tasti CONTROL-V, mentre il carattere^M si ottiene mediante la pressione dei tasti CONTROL-M. Ottenendo così il seguente output:

    :%s/^M//g

    Stiamo così dicendo al nostro sistema UNIX/Linux di effettuare una ricerca e sostituzione di una espressione regolare (con %s) della prima espressione, e quindi il carattere ^M (il cui escape è fatto con ^V), con la seconda espressione, quindi nulla, cioè quanto riportato il secondo ed il terzo slash, il tutto deve essere fatto globalmente, cioè per ogni occorrenza (come riportato dalla g).

  • Ottimizzare Immagini ricorsivamente con OptiPNG e Jpegoptim

    I file immagini non sempre sono ottimizzati e spesso portano con se informazioni che non sono sempre utili. L’ottimizzazione delle immagini è una cosa molto utile in ambito Web, imposta anche da Google Pagespeed che consiglia tra l’altro due software per effettuare tale operazione: OptiPNG e Jpegoptim, che rispettivamente ottimizzano file PNG e file JPG, vediamo come usarli dalla riga di comando in modo da ottimizzare in un solo colpo tutti i file presenti in una directory ed in tutte le directory sottostanti.

    Come ottimizzare le immagini ricorsivamente con OptiPNG

    OptiPNG è un ottimizzre di file PNG che ri-comprime i file immagine portandoli ad una dimensione inferiore senza perdita di informazioni. Oltre al già citato formato PNG permette di convertire ed ottimizzare file BMP, GIF, PNM e TIFF, oltre che ad effettuare controlli di integreità ed eventuali correzioni su file PNG.

    Per effettuare la scansione di una intera directory e delle sottodirectory si possono usare i seguenti comandi:

    Cercare file PNG ed ottimizzarli:

    find -type f -name "*.png" -exec optipng {} \;

    Cercare file GIF, ottimizzarli e convertirli in file PNG:

    find -type f -name "*.gif" -exec optipng {} \;

    Cercare file BMP, ottimizzarli e convertirli in file PNG:

    find -type f -name "*.bmp" -exec optipng {} \;

    Cercare file PNM, ottimizzarli e convertirli in file PNG:

    find -type f -name "*.pnm" -exec optipng {} \;

    Cercare file TIFF, ottimizzarli e convertirli in file PNG:

    find -type f -name "*.tiff" -exec optipng {} \;

    Come ottimizzare le immagini ricorsivamente con Jpegoptim

    Jpegoptim invece è  un programma che ottimizza le immagini JPEG, rimuovendo tra l’altro tutte le informazioni non necessarie alla visualizzazione del file.

    Per effettuare la scansione della directory corrente e di tutte le sottodirectory, come prima, useremo il comando jpegotim insieme al comando find:

    Cercare file JPG ed ottimizzarli:

    find -type f -name "*.jpg" -exec jpegoptim --strip-all {} \;

     

    Una volta usati questi due semplici comandi noterete come le immagini saranno di dimensioni ridotte (fino al 40% della dimensione originale), risparmiando così spazio su dico, velocizzando il caricamento delle vostre pagine Web ed essendo conformi alle linee guida di Google PageSpeed.

    Buona Ottimizzazione!

  • Come killare tutti i processi di un utente in Linux

    Capita spesso, per diversi motivi, di dover killare in massa tutti i processi di un utente, per fare ciò abbiamo due semplici metodi.

    Il primo metodo per chiudere tutti i processi utenti è quello di usare insieme in cascata i comandi psgrepawkxargs e naturalmente kill. Per fare ciò basta eseguire la stringa:

    ps -ef | grep nomeutente | awk '{ print $2 }' | sudo xargs kill -9

    sostituendo naturalmente il valore nomeutente con il nome dell’utente cui si desiderano killare tutti i processi.

    In alternativa si può usare pgrep, insieme ad xargs e logicamente kill. La stringa da eseguire invece in questo caso è:

    pgrep -u nomeutente | sudo xargs kill -9

    anche in questo caso va ovviamente sostituito il valore nomeutente con il nome dell’utente cui si desiderano chiudere tutti i processi.

  • Come ottenere la lista dei cron jobs di tutti gli utenti

    Avete la necessità di visualizzare i cron jobs di tutti gli utenti e non sapete come fare? Ecco un valido metodo per visualizzare tutti i crontab degli utenti dalla shell di Linux, basterà semplicemente fare un ciclo sugli utenti del sistema, recuperabili dal file /etc/passwd e per ogni utente lanciare il comando crontab con l’opzione -u <nomeutente> ottenendo così tutti i task del cron che il sistema eseguirà utete per utente.

    Per facilitarvi le cose ecco il tutto pronto per voi:

    for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
  • Redirect di dominio con .htaccess

    Capita di dover o voler cambiare dominio, magari per il cambio del TLD, da .it a .com, o perchè si sceglie di utilizzae un nuovo nome a dominio. Il rischio spesso è quello di perdere l’indicizzazione dei contenuti e non recuperarla più. Per non incorrere in tale problema la soluzione ideale è quella di reindirizzare i contenuti dal vecchio sito al nuovo, mediante un Redirect 301 (Moved permanently).

    .htaccess Redirect 301

    Nei sistemi in cui è installato il web server Apache il metodo più efficace per effettuare tale pratica è quello di usare il file .htaccess, che permette tramite semplici righe di realizzare la migrazione dei contenuti da un vecchio sito ad uno nuovo.

    Per fare il redirect di un vecchio dominio, ad esempio da vecchiodominio.it a nuovodominio.com basterà aggiungere al file .htaccess le seguenti righe:

    
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^vecchiodominio.it$ [OR]
      RewriteCond %{HTTP_HOST} ^www.vecchiodominio.it$$
      RewriteRule (.*)$ http://www.nuovodominio.com/$1 [R=301,L]
    </IfModule>
    

    A questo punto qualsiasi post, che manterrà la medesima struttura gerarchica di directory, del vecchio sito, sarà redirezionato nel nuovo sito.

     

    Buon redirect a voi!