phpMyAdmin-UpdatescriptNahezu jeden Monat kommt eine neue phpMyAdmin-Version heraus, bisher habe ich immer von Hand aktualisiert (apt ist mir da nicht schnell genug), was bei vier Servern echt anstrengend wird.

Ich habe nun den Updatevorgang in ein Shellscript gepackt und kann die Aktualisierung nun mit folgendem Befehl starten:
sh pma-update.sh VERSIONSNUMMER

als Beispiel:

sh pma-update.sh 3.0.0

Die pma-update.sh sieht wie folgt aus:

#!/bin/bash
ORDNER=/home/htdocs/confixx/html  #Ordner in dem phpMyAdmin laufen soll
USER=confixx                                #Benutzer
GROUP=confixx                              #Gruppe 
 
if [ -z "$1" ]
then    echo "Bitte die Versionsnummer angeben. Beispiel: sh pma-update.sh 2.11.2";
else
 
        cd $ORDNER;
 
        MYORDNER=`pwd`;
 
        if [ $MYORDNER != $ORDNER ]
        then
                echo "Fehler beim Wechseln des Verzeichnis";
                pwd;
 
        else
                wget --directory-prefix=$ORDNER http://mesh.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-$1-all-languages.tar.bz2
                if [ -f "$ORDNER/phpMyAdmin-$1-all-languages.tar.bz2" ]
                then    tar xjvf phpMyAdmin-$1-all-languages.tar.bz2
                        mv -v $ORDNER/pma/config.inc.php $ORDNER/phpMyAdmin-$1-all-languages/
                        rm -Rv $ORDNER/pma
                        mv -v $ORDNER/phpMyAdmin-$1-all-languages $ORDNER/pma
                        chown -Rv $USER:$GROUP $ORDNER/pma
                        echo "Das phpMyAdmin-Update auf Version " $1 " wurde erfolgreich im Ordner " $ORDNER " durchgeführt!"
                else
                        echo "Fehler beim Download des Paketes";
                fi
        fi
fi

UPDATE
Noch besser ist das automatische Auslesen der aktuellen Versionsnummer von phpMyAdmin. Vielen Dank an Firewire2002 aus dem Server Support Forum.

WICHTIG
Bei diesem Script wird auf die Version 3.x geupdated, die jedoch ohne php5 nicht lauffähig ist! Wer noch php4 auf seinem Server hat, sollte die Stelle “Latest stable 3.x version:” in “Latest stable 2.x version:” ändern.

#!/bin/bash
ORDNER=/srv/www/confixx/html  #Ordner in dem phpMyAdmin laufen soll
USER=confixx                                #Benutzer
GROUP=confixx                              #Gruppe
 
#Aktuelle phpMyAdmin-Version ermitteln
VERSION=$(wget -q -O /tmp/phpMyAdmin_Update.html http://www.phpmyadmin.net/home_page/index.php && grep "Latest stable 3.x version:" /tmp/phpMyAdmin_Update.html | awk '{print $7}' | sed -e s/\< \\/span\>\<br// && rm -f /tmp/phpMyAdmin_Update.html )
 
if [ -z "$VERSION" ]
then    echo "Es konnte keine Version ermittelt werden. Bitte später erneut versuchen!";
else
 
        cd $ORDNER;
 
        MYORDNER=`pwd`;
 
        if [ $MYORDNER != $ORDNER ]
        then
                echo "Fehler beim Wechseln des Verzeichnis";
                pwd;
 
        else
                wget --directory-prefix=$ORDNER http://mesh.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-$VERSION-all-languages.tar.bz2
                if [ -f "$ORDNER/phpMyAdmin-$VERSION-all-languages.tar.bz2" ]
                then    tar xjvf phpMyAdmin-$VERSION-all-languages.tar.bz2
                        mv -v $ORDNER/phpMyAdmin/config.inc.php $ORDNER/phpMyAdmin-$VERSION-all-languages/
                        rm -Rv $ORDNER/phpMyAdmin
                        mv -v $ORDNER/phpMyAdmin-$VERSION-all-languages $ORDNER/phpMyAdmin
                        chown -Rv $USER:$GROUP $ORDNER/phpMyAdmin
                        echo "Das phpMyAdmin-Update auf Version " $VERSION " wurde erfolgreich im Ordner " $ORDNER " durchgeführt!"
                else
                        echo "Fehler beim Download des Paketes";
                fi
        fi
fi