Het Lab backports

Aangezien ik bezig ben om in WordPress een gallery toe te voegen heb ik de php gd library nodig. Als ik die probeer te installeren dan schrik ik echter van de dependency’s:

Arkon:~# aptitude install php5-gd
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Building tag database... Done
The following NEW packages will be automatically installed:
  defoma file fontconfig-config libexpat1 libfontconfig1 libfreetype6
  libft-perl libgd2-xpm libjpeg62 libpng12-0 libt1-5 libttf2 libx11-6
  libx11-data libxau6 libxdmcp6 libxpm4 ttf-dejavu x11-common
The following packages have been kept back:
  linux-image-2.6.18-6-486
The following NEW packages will be installed:
  defoma file fontconfig-config libexpat1 libfontconfig1 libfreetype6
  libft-perl libgd2-xpm libjpeg62 libpng12-0 libt1-5 libttf2 libx11-6
  libx11-data libxau6 libxdmcp6 libxpm4 php5-gd ttf-dejavu x11-common
0 packages upgraded, 20 newly installed, 0 to remove and 1 not upgraded.
Need to get 6345kB of archives. After unpacking 15.0MB will be used.
Do you want to continue? [Y/n/?] n
Abort.

Ik heb dus blijkbaar X-Windows nodig op mijn server, enkel en alleen om de webserver een plaatje te kunnen laten bewerken. Dat moet ook anders kunnen. Voor de oplettenden, er staat inderdaad ook een kernel upgrade tussen die nog uitgevoerd moet worden. Ik had het mailtje daarover al gehad.

Om een uitgeklede php5 versie te installeren kan ik op zoek gaan naar iemand die dat al gedaan heeft en dan moet ik die persoon nog vertrouwen. Gelukkig heeft Henk van de Kamer dit gedaan en vertrouw ik hem al, anders had ik niet gebruik gemaakt van zijn handleidingen voor de installatie en de bijbehorende configuratiebestanden. Als eerste even het toevoegen van zijn server aan de sources.list:

deb http://backports.armorica.tk/ etch php5

En vervolgens nog zorgen dat apt die sources vertrouwd:

Arkon:~# nano /etc/apt/sources.list
Arkon:~# wget http://backports.armorica.tk/backports.gpg
--23:43:38--  http://backports.armorica.tk/backports.gpg
           => `backports.gpg'
Resolving backports.armorica.tk... 88.198.41.48
Connecting to backports.armorica.tk|88.198.41.48|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1,336 (1.3K) [application/octet-stream]

100%[====================================>] 1,336         --.--K/s

23:43:58 (15.30 MB/s) - `backports.gpg' saved [1336/1336]

Arkon:~# apt-key add backports.gpg
OK
Arkon:~# aptitude update
Get:1 http://ftp.nl.debian.org etch Release.gpg [378B]
Hit http://ftp.nl.debian.org etch Release
Get:2 http://backports.armorica.tk etch Release.gpg [189B]
Get:3 http://backports.armorica.tk etch Release [6848B]
Get:4 http://security.debian.org etch/updates Release.gpg [189B]
Get:5 http://security.debian.org etch/updates Release [37.6kB]
Ign http://ftp.nl.debian.org etch/main Packages/DiffIndex
Hit http://ftp.nl.debian.org etch/main Packages
Get:6 http://backports.armorica.tk etch/php5 Packages [8161B]
Ign http://security.debian.org etch/updates/main Packages/DiffIndex
Hit http://security.debian.org etch/updates/main Packages
Fetched 53.3kB in 21s (2524B/s)
Reading package lists... Done

Hierna voer ik een upgrade uit om alle debian pakketten voor php5 te vervangen door zijn versie’s. Hier komt ook meteen de kernel upgrade mee:

Arkon:~# aptitude upgrade
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Building tag database... Done
The following packages will be upgraded:
  linux-image-2.6.18-6-486 php5-cgi php5-common php5-mysql
4 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.2MB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n/?] y

Na het toevoegen van de backports van Henk van de Kamer in mijn sources.list ziet de installatie er een stuk prettiger uit:

Arkon:~# aptitude install php5-gd
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Building tag database... Done
The following NEW packages will be automatically installed:
  libfreetype6 libgd2-noxpm libjpeg62 libpng12-0
The following NEW packages will be installed:
  libfreetype6 libgd2-noxpm libjpeg62 libpng12-0 php5-gd
0 packages upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 841kB of archives. After unpacking 1982kB will be used.
Do you want to continue? [Y/n/?] y

Toch geen X11 nodig 😀

Nog even de webserver herstarten en we kunnen gebruik maken van de nieuwe library:

Arkon:~# /etc/init.d/lighttpd restart
Stopping web server: lighttpd.
Starting web server: lighttpd.

Helaas moet ik vanwege de kernel update wel even het systeem rebooten. Ik raak dus mijn mooie uptime kwijt:

Arkon:~# uptime
 00:00:49 up 96 days, 11:03,  1 user,  load average: 0.08, 0.24, 0.25

Update taalbestand wordpress

Nu heb ik laatst met succes een update doorgevoerd voor WordPress, helaas worden er geen taalbestanden meegeleverd met dit pakket. Die moeten handmatig toegevoegd worden waardoor je de kans loopt om ze te vergeten. Ik heb dat vandaag maar even rechtgezet.

Aangezien het slechts om 1 bestand gaat heb ik geen diff gedraaid, deze kan ik simpelweg vervangen.

Arkon:~/tecumseh.homeip.net/wp-includes/languages$ mv nl_NL.mo nl_NL.mo.bak
Arkon:~/tecumseh.homeip.net/wp-includes/languages$ wget http://svn.automattic.com/wordpress-i18n/nl/branches/2.5/nl_NL.mo

Nu heb ik ook eindelijk het dashboard van wordpress in het nederlands en niet het halve engels/nederlands wat ik vlak na de upgrade voorgeschoteld kreeg.

Nog even het verwijderen van de oude versie, de nieuwe werkt per slot van rekening:

Arkon:~/tecumseh.homeip.net/wp-includes/languages$ rm nl_NL.mo.bak

Glasvezel (3)

Een tijdje terug schreef ik nog dat de snelheid van mijn verbinding ietswat tegenviel. De test heb ik destijds uitgevoerd met speedtest.nl en ik gaf in mijn post al aan dat speedtest mijn snelheid blijkbaar niet aankan.

In de opmerkingen bij die post kreeg ik het aanbod om de test zelf uit te voeren met een Hetzner server waar Henk van de Kamer toegang toe heeft. Om zo’n test betrouwbaar uit te voeren ben ik dus op zoek gegaan naar een bash-script wat de meting uitvoeren kan. Tot nu toe geen succes, ik kwam echter wel een andere testsite tegen en daar kreeg ik al hele andere resultaten:

Blijkbaar zit het qua snelheid dus wel aardig in de buurt. De zoektocht naar een eigen testscript gaat nog verder

Mailclient

Ik heb nu een aantal maanden geprobeerd te wennen aan Kmail, het mailprogramma wat standaard bij een KDE omgeving meegeleverd wordt. Toch blijven me een aantal kleine dingen ergeren. De spreekwoordelijke druppel die me het besluit liet maken om toch weer terug te gaan naar Thunderbird is het toevoegen van certificaten in de mailclient. Onder Kmail moet ik diverse handelingen uitvoeren die niet heel goed beschreven staan. Nadat ik een aantal verschillende manieren geprobeerd heb werd nog steeds het CAcert root certificaat niet herkend. Dit is onder andere nodig om de mail die ondertekend is met een certificaat wat door CAcert uitgegeven is te controleren. Maar straks hopelijk meer over certificaten want ik ben van plan om mijn mail in het vervolg ook te ondertekenen.

Nu eerst echter het converteren van de mail zodat thunderbird hier iets mee kan. Kmail gebruikt namelijk niet het veelgebruikte mbox formaat maar maildir. Hier kan Thunderbird niets mee. Het converteren hiervan is eigenlijk heel simpel, maak in Kmail een nieuwe folder aan in mbox formaat en kopieer daar alle mail in. Dit heb ik dus per submap gedaan (inbox, sent, draft) en dan ook nog eens van meerdere accounts. Zorg er overigens voor dat er geen mail meer opgehaald kan worden als je zo’n conversie begint, het zou toch jammer zijn als er een mailtje tussen wal en ’t schip valt. Nadat je alle mails zo geconverteerd hebt is het een kwestie van de aangemaakte mbox bestanden over te zetten naar thunderbird. Die bestanden vindt je in ~/.kde/share/apps/kmail/mail/ en die moeten naar de profile directory van thunderbird in de subdirectory Local Folders: ~/.mozilla-thunderbird/{profielnaam}.default/Mail/Local Folders/

In Thunderbird de verschillende accounts nog even instellen en eventueel andere zaken configureren. En uiteraard het verwijderen van Kmail.

Aanpassen mailadressen op Arkon (2)

Nog steeds krijg ik mail op mijn @home adres, deze gaat echter per 1 juni niet meer werken. Ik zal dus nogmaals de configuratie na moeten lopen.

Ik heb de vorige keer in /etc/postfix het bestand aliases aangepast en daarin alle mailadressen verandert naar mijn concepts mailadres. Dit heeft blijkbaar dus niet gewerkt. Nu zie ik ook een ander bestand genaamd aliases.db en een google zoektocht levert me de oplossing op. Ik moet namelijk de database met aliasen nog updaten:

Arkon:/etc/postfix# postalias aliases

Nog even testen:

Arkon:/etc/postfix# mail root
Subject: test mail
Cc:
Null message body; hope that's ok

En even later verschijnt er een mailtje in de juiste mailbox.

Sitemap

Een blog is leuk, maar als er maar weinig mensen langskomen om het te lezen dan is het niet meer dan een dagboek wat je eigenlijk ook offline bij kunt houden. Het is dus handig als je gevonden kunt worden met de zoekmachines. Hiervoor heb ik eigenlijk al een tijd geleden iets mee willen doen en vandaag is het er dan van gekomen. Ik kwam namelijk een plugin tegen die dit automatisch al regelt. Het gaat om de Google Sitemap Generator, hiermee wordt de sitemap.xml aangemaakt en de zoekmachines worden van een update op de hoogte gesteld.

Het installeren is vrij simpel, pak het gedownloade zip bestand uit in de plugins directory en maak een 2-tal lege bestanden aan in de root van je site:

Arkon:~/tecumseh.homeip.net$ touch sitemap.xml
Arkon:~/tecumseh.homeip.net$ touch sitemap.xml.gz
Arkon:~/tecumseh.homeip.net$ chmod 666 sitemap.xml sitemap.xml.gz
Arkon:~/tecumseh.homeip.net$ cd ../archives
Arkon:~/archives$ wget http://downloads.wordpress.org/plugin/google-sitemap-generator.3.0.3.3.zip
Arkon:~/archives$ unzip google-sitemap-generator.3.0.3.3.zip
Arkon:~/archives$ mv google-sitemap-generator ../tecumseh.homeip.net/wp-content/plugins/

Hierna kun je in het WordPress control panel de plugin activeren. De 1e keer zal de sitemap handmatig bijgewerkt moeten worden. Daarna zal bij elke post een update gestart worden die in de achtergrond draait.

Voordat ik dit post is dit de laatste update volgens het controlpanel:

Your sitemap was last built on 21 May 2008 5:52 pm

Een minuut na het posten kom ik deze tijd tegen:

Your sitemap was last built on 21 May 2008 7:51 pm.

Het automagische gedeelte klopt dus inderdaad.

WordPress updaten (2)

Nu we de testomgeving klaar hebben staan kan er begonnen worden met het update proces. Uiteraard doen we dat niet op de manier die WordPress zelf voor ogen heeft. Simpelweg alles overschrijven inclusief de aanpassingen die je eventueel gedaan hebt is niet helemaal de juiste manier.

Als eerste halen we de laatste versie op en hernoemen die. Vervolgens pakken we de originele versie en de laatste versie uit in de archives directory:

Arkon:~/archives$ wget http://wordpress.org/latest.tar.gz
Arkon:~/archives$ mv latest.tar.gz wordpress_2.5.1.tar.gz
Arkon:~/archives$ tar -xzf wordpress_2.3.3.tar.gz
Arkon:~/archives$ mv wordpress wordpress_233
Arkon:~/archives$ tar -xzf wordpress_2.5.1.tar.gz
Arkon:~/archives$ mv wordpress wordpress_251

Vervolgens gaan we met diff een patchbestand aanmaken:

Arkon:~/archives$ diff -crN wordpress_233/ wordpress_251/ > wp233-251.patch

Met dit patchbestand kan ik vervolgens de testinstallatie van wordpress gaan updaten:

Arkon:~/test.homeip.net$ patch -cl -d ./ -p1 < /home/tecumseh/archives/wp233-251.patch

Ik kom meteen al een foutmelding tegen:

can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -crN wordpress_233/license.txt wordpress_251/license.txt
|*** wordpress_233/license.txt Tue Apr 1 16:12:34 2003
|--- wordpress_251/license.txt Sun Mar 2 22:34:25 2008
--------------------------
File to patch:

Nu staat me inderdaad bij dat ik de license.txt verwijdert heb, en bestanden die niet bestaan zijn wat lastig te updaten. Na een enter verschijnt de vraag of ik deze patch wil overslaan. Zo volgen er nog een paar want de readme en de installatiedirectory zijn niet meer aanwezig.

Na het patchen bekijken we de boel eens in de browser. Na het inloggen krijg ik de melding dat de database een opfrissing nodig heeft, ik geef hierop akkoord waarna de database aangepast wordt. Hiermee is de update ook helemaal klaar.

Na wat rondkijken in de testomgeving kan ik in elk geval concluderen dat ik al mijn posts nog heb en dat in elk geval het meest voor de hand liggende werkt. Ik kan dit dus ook doorvoeren op de live omgeving. De backup houd ik nog even achter de hand voor het geval dit helemaal misloopt.

WordPress updaten

Ik loop al even achter met het updaten van WordPress. Dit is mede omdat het gaat om een major versie (2.3.3 naar 2.5.0, nu zelfs 2.5.1). Dit wil ik dus eerst wel even testen voordat ik dit live ga toepassen.

Dus eerst maar eens een extra domeinnaam aangevraagd bij DynDNS en de juiste directory en symlinks aanmaken zodat lighttpd weet waar die de website vandaan halen moet.

Nu het kopieren van alle bestanden die ik onder de root heb staan.

Arkon:/var/www/homeip.net/tecumseh# cp -R * ../test

Vervolgens het maken van een sql dump:

Arkon:~# mysqldump --databases wordpress -p > wordpress.sql

In deze sql file moet ik nog alle verwijzingen naar de wordpress database veranderen in de databasenaam die ik voor deze test gereserveerd heb. Ik heb dit met nano gedaan hoewel ik weet dat er snellere manieren voor zijn, die zijn voor de oningewijden echter wat lastiger.

Vervolgens in phpmyadmin de database en gebruiker aanmaken en het aangemaakte sql bestand inladen.

Arkon:~# mysql -p test < wordpress.sql

Nog even het configfile van wordpress aanpassen naar de nieuwe database en gebruiker.

Als het goed is dan kan ik dus nu via de dyndns alias naar de backupsite browsen. Helaas wordt ik direct naar deze site teruggestuurd. Blijkbaar regelt wordpress dit en zal ik dus in de database een aantal verwijzingen naar de url moeten aanpassen. Na deze aanpassingen kan ik eindelijk van start met de update.

Flash en consorten

Helaas ontkom je er niet meer aan, als je wat zoekt op het internet dan heb je een flashplayer nodig bij steeds meer website’s. Wat het nog frusterender maakt is dat er geen 64-bits linux versie van beschikbaar is. Je hebt dus naast de flashplayer ook een aantal 32-bits bibliotheken nodig om het geheel in 32-bits te kunnen draaien. Gelukkig gaat dat onder (K)Ubuntu tegenwoordig vrij makkelijk:

tecumseh@Athlan:~$ sudo apt-get install kubuntu-restricted-extras
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  flashplugin-nonfree ia32-libs icedtea-gcjwebplugin lib32asound2 lib32gcc1
  lib32ncurses5 lib32stdc++6 lib32z1 libavformat1d libc6-i386 libdc1394-13
  libk3b2-extracodecs libtunepimp5-mp3 nspluginwrapper
Suggested packages:
  firefox firefox-3.0 libflashsupport ttf-xfree86-nonfree xfs xulrunner-1.9
  libasound2-plugins libtunepimp-bin libtunepimp5-dev
Recommended packages:
  lib32nss-mdns
The following NEW packages will be installed:
  flashplugin-nonfree ia32-libs icedtea-gcjwebplugin kubuntu-restricted-extras
  lib32asound2 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libavformat1d
  libc6-i386 libdc1394-13 libk3b2-extracodecs libtunepimp5-mp3 nspluginwrapper
0 upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
Need to get 26.2MB of archives.
After this operation, 115MB of additional disk space will be used.
Do you want to continue [Y/n]? y

Mocht je Ubuntu gebruiken dan zul je trouwens het pakket ubuntu-restricted-extras

SSH beveiligen

Aangezien ik de ssh-server op Arkon nu ook vanaf externe adressen wil kunnen benaderen zal ik moeten zorgen dat er geen ongewenste bezoekers binnenkomen. Nu kan ik een aantal ip-adressen opgeven vanwaar ingelogd mag worden maar ik kies voor een andere route.

Ik gebruik namelijk al een systeem met public en private keys, als ik opensshd nu aanpas dat er enkel nog ingelogd mag worden met behulp van een key dan kunnen ze proberen wat ze willen maar gaat het niet lukken.

Als eerste heb ik gisteravond de router ingesteld om de juiste poort te forwarden naar Arkon. Daardoor kan ik nu tijdens de pauze Putty instellen en de boel dichttimmeren.

Als eerste met behulp van Puttygen een rsa2 key van 2048 bits aangemaakt. Het publieke deel heb ik met nano toegevoegd aan de authorized_keys. In Putty heb ik vervolgens een profiel (Saved Session) met daarin de hostname en poort. De instellingen van het toetsenbord heb ik omgezet naar unix. Ook controleer ik op Putty probeert om de key te laden vanuit Pageant (Putty Authentication Agent)

De private key die ik aangemaakt heb met Puttygen heb ik voorzien van een (sterk) wachtwoord. Door eerst Pageant.exe op te starten kan ik daarin een key inladen waarbij ik het wachtwoord moet opgeven.

Hierna kan ik met Putty inloggen op Arkon, er wordt me om een gebruikersnaam gevraagt en Pagent doet de rest door de key te vergelijken.

login as: tecumseh 
Authenticating with public key "tecumseh.homeip.net" from agent

Nu de ssh server nog verder dichttimmeren. Door in /etc/ssh/sshd_config 2 waarden aan te passen kan er niet meer ingelogd worden met behulp van een wachtwoord:

PasswordAuthentication no 
UsePAM no

En dan nu het moment van de waarheid, het herstarten van de ssh server en kijken of ik er nog inkan.

Arkon:~# /etc/init.d/ssh restart 
Restarting OpenBSD Secure Shell server: sshd.

Vervolgens kan ik na het afsluiten van Putty nog steeds inloggen. Nu Pageant eens afsluiten en nog een keer proberen.

PuTTY Fatal Error 
Disconnected: No supported authentication methods available

Dat werkt dus prima!