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 Allaanzetten 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- http://org.pc-freak.net/papers/iptables-tutorial.html#MODULEPROBLEMS
- http://wiki.pcprobleemloos.nl/using_lxc_linux_containers_on_debian_squee...
- Ook met dank aan Luc voor de feedback via mail.
- 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:
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:
-
Oplossing: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- Toegevoegd aan
/etc/hosts:188.40.34.110 intrepid intrepid.amedee.be amedee.be - Toegevoegd aan
/etc/apache2/httpd.conf:ServerName amedee.be
- Toegevoegd aan
-
Oplossing: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.sudo make-ssl-cert generate-default-snakeoil --force-overwrite
Mod-rewrite aanzetten
Onder andere Drupal heeft mod-rewrite nodig, voor clean URLs. Dus:
In /etc/apache2/sites-enabled/000-default is er ook nog een aanpassing nodig:
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:
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:
Websites overzetten
De websites draaien allemaal op één Drupal-installatie in /var/www maar wel met elk een eigen database.
Eerst de bestanden overzetten:
Daarna de databases overzetten. Eerst een backup maken op de oude server:
Vervolgens de backup kopiëren naar de nieuwe server en importeren in mysql:
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.