You are heresoftware / phpMyAdmin

phpMyAdmin


Post-Debian upgrade

Te fixen probleempjes na een Debian upgrade, voornamelijk als bookmark voor mezelf.

  • Restanten van MySQL 5.0 verwijderen + phpMyAdmin deed wat raar:
    sudo apt-get remove mysql-server-5.0
    sudo apt-get purge phpmyadmin
    sudo apt-get install phpmyadmin
  • SpamBayes spuwde een lelijke error:
    Traceback (most recent call last):
      File "/usr/bin/sb_filter.py", line 4, in <module>
        import pkg_resources
      File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 2671, in
    <module>
        working_set.require(__requires__)
      File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 654, in
    require
        needed = self.resolve(parse_requirements(requirements))
      File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 552, in
    resolve
        raise DistributionNotFound(req)
    pkg_resources.DistributionNotFound: spambayes==1.1a6

    De oorzaak was een versiesprong van Python. Debian Lenny had 2.4, Debian Squeeze heeft 2.6.6.
    Oplossing: Spambayes 1.1a6 opnieuw downloaden van SourceForge, uitpakken, en installeren met:
    sudo python setup.py install

    Todo: blijkbaar is er al een versie 1.1b1 van SpamBayes
  • Ik had backup2l gepatcht, deze patchen waren weg door de upgrade. Door wat creatiever om te springen met find, zijn de patchen zelfs niet meer nodig.
    Dit is nu mijn nieuwe /etc/backup2l.conf (commentaren en lege lijnen weggelaten):
    FOR_VERSION=1.5
    VOLNAME="all"
    SRCLIST=(/bin /etc /home /lib /opt /root /sbin /srv /usr /var
                  -path '/home/amedee/download'    -prune
               -o -path '/home/backup/crashplan'   -prune
               -o -path '/home/backup/intrepid'    -prune
               -o -path '/home/*/Maildir'          -prune
               -o -path '*/home/*/Maildir/*.Trash' -prune
               -o -path '/lib/modules'             -prune
               -o -path '*lost+found'              -prune
               -o -path '*.nobackup*'              -prune
               -o -path '/usr/include'             -prune
               -o -path '/usr/share/zoneinfo'      -prune
               -o -path '/var/cache'               -prune
               -o -path '/var/lib/apt'             -prune
               -o -path '/var/lib/dpkg'            -prune
               -o -path '/var/lib/mysql'           -prune
               -o -path '/var/lock'                -prune
               -o -path '/var/log/apache2'         -prune
               -o -path '/var/mail'                -prune
               -o -path '/var/tmp'                 -prune
               -o -path '/var/run'                 -prune
               -o -path '/var/spool'               -prune
               -o -path '/var/www/squirrelmail'    -prune
               -o -path '/var/www/squid-reports'   -prune
               -o -path '*/.git'                   -prune
            )
    SKIPCOND=(
                  -type s
               -o -name "*~"
               -o -name "*.bak"
               -o -name "*.o"
               -o -name "*.old"
               -o -name "Thumbs.db"
               -o -wholename "*/home/*/Maildir/*dovecot*"
               -o -wholename "/var/log/mail*"
               -o -wholename "/var/www/sites/*/files/js/js_*.js"
             )
    BACKUP_DIR="/home/backup/intrepid"
    MAX_LEVEL=2
    MAX_PER_LEVEL=9
    MAX_FULL=8
    GENERATIONS=2
    CREATE_CHECK_FILE=1
    PRE_BACKUP ()
    {
            for script in /root/bin/hotcopy-*.sh
            do
                "$script" &
            done
            wait
    }
    POST_BACKUP ()
    {
            nice --adjustment=19 /usr/local/bin/timeout -t 3600 /usr/local/bin/hardlink.py -t /home > /dev/null
            /root/bin/clearswap.sh
            php /home/amedee/twitter/backup.php
    }
    AUTORUN=1
    SIZE_UNITS=""
    CREATE_DRIVER="DRIVER_MY_TAR_LZ"

    Mijn tar.lz-driver staat hier.
    TODO: sockets niet meenemen in de backup.
  • Drupal gebruikte geen Clean URLs meer.
    Oplossing: AllowOverride All aanzetten in /etc/apache2/sites-enabled/000-default, Apache herstarten en Clean URLs terug aanzetten in Drupal.
  • TODO: Apache status is niet meer bereikbaar op localhost/server-status (voor Munin).
  • Shorewall startte niet wegens iptables probleem wegens modules niet geladen. Opgelost met
    sudo apt-get purge linux-modules-2.6.26-2-xen-amd64
    sudo apt-get install linux-modules-2.6.32-5-xen-amd64

    Probleem en oplossing gevonden via
  • php5-imagick en php5-curl herinstalleren (deden een beetje lastig):
    sudo apt-get purge php5-imagick php5-curl
    sudo apt-get install php5-imagick php5-curl

intrepid²: webserver

Installatie

Apache, PHP, MySQL en phpMyAdmin tesamen in één keer installeren met:

sudo aptitude install apache2 php5 imagemagick php5-imagick \
     mysql-server phpmyadmin php5-curl php5-dev php-pear make

Debian trekt zelf alle noodzakelijke afhankelijkheden binnen.

Kleine bugjes fixen

Apache gaf wel enkele waarschuwingen tijdens de installatie:

  • Starting web server: apache2apache2: apr_sockaddr_info_get() failed for intrepid
    apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    Oplossing:
    • Toegevoegd aan /etc/hosts:
      188.40.34.110   intrepid   intrepid.amedee.be   amedee.be
    • Toegevoegd aan /etc/apache2/httpd.conf:
      ServerName amedee.be
  • Setting up ssl-cert (1.0.23) ...
    hostname: Unknown host
    make-ssl-cert: Could not get FQDN, using "intrepid".
    make-ssl-cert: You may want to fix your /etc/hosts and/or DNS setup and run
    make-ssl-cert: make-ssl-cert generate-default-snakeoil --force-overwrite
    make-ssl-cert: again.
    Oplossing:
    sudo make-ssl-cert generate-default-snakeoil --force-overwrite

Mod-rewrite aanzetten

Onder andere Drupal heeft mod-rewrite nodig, voor clean URLs. Dus:

sudo a2enmod rewrite

In /etc/apache2/sites-enabled/000-default is er ook nog een aanpassing nodig:

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                #AllowOverride None
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

Dus AllowOverride None moet vervangen worden door AllowOverride All, anders werken de .htaccess-bestanden niet.

phpMyAdmin beveiligen

Ik vind het niet zo leuk dat om het even wie met phpMyAdmin kan klooien (ook al staat er een sterk wachtwoord op alle mysql-users. Daarom beveilig ik phpMyAdmin met mod_access door volgende aanpassing van /etc/apache2/httpd.conf:

<Directory /usr/share/phpmyadmin>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 10
    Allow from <mijn-ip-adres>
</Directory>

Van zodra de OpenVPN in orde is, gaat ook de regel Allow from <mijn-ip-adres> er uit, omdat de webserver dan te bereiken zal zijn via een 10.x.x.x adres.

Apache herstarten

Om al deze configuratiewijzigingen toe te passen, moet Apache herstart worden:

sudo /etc/init.d/apache2 restart

Websites overzetten

De websites draaien allemaal op één Drupal-installatie in /var/www maar wel met elk een eigen database.

Eerst de bestanden overzetten:

sudo rsync -aczhP -e ssh root@oldserver.amedee.be:/var/www /var/

Daarna de databases overzetten. Eerst een backup maken op de oude server:

mysqldump -u root -p --all-databases | bzip2 -c > databasebackup.sql.bz2

Vervolgens de backup kopiëren naar de nieuwe server en importeren in mysql:

scp oldserver.amedee.be:"~/databasebackup.sql.bz2" .
bzcat databasebackup.sql.bz2 | mysql -u root -p

Omdat de users database nu ook mee gekopieerd is, moet er ook nog een flush privileges gebeuren in mysql. Dit heb ik via phpMyAdmin gedaan.

Eindresultaat: alle websites zijn getransplanteerd van de oude server naar de nieuwe server. Er zijn nog een paar kleinigheden die nagekeken moeten worden, zoals tijdelijke import-directories voor Drupal, maar voor de rest werkt alles.

Reclame... ;-)

Met dank aan
  • Jasmina
  • Celine
  • Pieter
  • Jeff
  • Hans
  • Jurgen
  • Jurgen
  • Marijke
  • Amedee
  • Erik
  • Danny
  • Sofie
  • Lars
  • Christophe
  • Peter
  • Jeroen
  • Jurgen
om mij een gratis herlading twv €15 te bezorgen!

Waar ben ik?