PCWereld upgrade naar Drupal 5 en verhuis

Nu Drupal 6 al in beta is, werd het wel eens tijd om de PCWereld website te upgraden van Drupal 4.7 naar Drupal 5. Ik loop meestal redelijk achter met upgrades omdat er heel wat custom code achter zit die elke keer moet worden geupdate, maar ook omdat ik die site regelmatig gebruik om patches te testen.

Dankzij de hook_*_alter() functies heb ik in mijn pcwereld_custom module heel wat aanpassingen kunnen doen aan de links en forms die door drupal core worden gegenereerd, zonder de core files te moeten patchen. Hoe minder dat nodig is, hoe beter natuurlijk.
Maar zoals gewoonlijk heb ik toch drupal core op een paar plaatsen gepatched, voornamelijk voor performantie redenen. Ter info (en vooral als geheugensteuntje voor mezelf), dit zijn de gebruikte patches:

  • Drupal 5 backport van de javascript aggregation patch. We hebben heel wat modules die hun eigen stukjes javascript toevoegen. Als dat allemaal in verschillende bestanden zit, zijn dat veel te veel bestandjes om in te laden. Gecombineerd met css aggregation zorgt dit voor heel wat minder requests en betere YSlow scores. Het enige wat de score nu nog naar beneden haalt is dat die bestanden nog niet ge-gzipt worden, mod_deflate ontbreekt op de server. Ik zou er misschien eens achter moeten vragen..
  • legacy-module-fix-redirects.patch. Een bugfix voor fouten in de legacy module, ondertussen gecommit in 5.x-dev.
  • "no table locking"-patch. De gebruikelijke aanpassing, gebruikt mysql-specifieke "REPLACE" syntax in plaats van table locking te gebruiken.
  • use http 1.0 responses on error pages. Als drupal een error pagina genereert gebruikt die altijd HTTP/1.1, onafhankelijk van wat de client gebruikt. Een bepaalde proxy kan daar niet goed mee overweg en geeft dan random cijfers bovenaan de pagina weer. Dit maakt dat beest weer happy.
  • forum 404s de forum module heeft de gewoonte gewoon blanco paginas te genereren als je iets opvraagt dat niet bestaat (eg. http://drupal.org/forum/blah). Zeker nu we pathauto gebruiken is het belangrijk om wel deftig "page not found" berichten te genereren.
  • een paar eenvoudige aanpassingen zodat de locale module minder queries naar de database lanceert. Eigelijk zou iemand die 75 chars limiet van de locale cache eens moeten herzien. Maar ja, wie ben ik nu weer om dat te zeggen, het is niet dat ik die limiet uit mijn duim heb gezogen. Of wacht, misschien toch..
  • automatische path whitelist, voor elke url een query naar de database sturen leverde enorm veel queries op, van veel daarvan weet ik op voorhand dat ze toch niet gaan bestaan. Dit is een backport van een patch die op drupal.org gepost geweest is en ik destijds opnieuw gemaakt had voor D5. Het origineel moet ergens hiertussen staan denk ik.

En waarom zit dit niet allemaal in de issue queue op drupal.org? Omdat ik enkel de dingen submit waarvan ik denk dat ze kans maken ooit gecommit te worden. Nadeel van de voor developers minder hippe stabiele versie te gebruiken, je krijgt daar praktisch niets in zonder eerst doorheen D6 te gaan en dan te laten backporten. Maar ik loop achter en heb geen D6 omgeving dus ik wacht gewoon tot iemand anders datzelfde opmerkt.

 

Aangezien de site toch down moest voor een upgrade, heb ik van de gelegenheid gebruik gemaakt om van webhost te veranderen. Met enige moeite is de site nu bij Openminds ondergebracht. Voor bezoekers niet direct een groot verschil maar voor mezelf is heel wat eenvoudiger geworden. Alle code staat eindelijk netjes in CVS/SVN en ik heb eindelijk SSH toegang. Iemand die ooit een database van 100M heeft proberen te importeren via phpmyadmin weet wat een miserie upgrades vroeger waren.
En natuurlijk een lichtjes getweakte php.ini om wat vriendelijker te zijn op de server (APC, memory limit wat verlaagd,..).

De site draait nu ook achter een reverse proxy, dus standaard gaat drupal in de watchdog en tracking altijd het IP adres van de proxy loggen. Daarmee weet je natuurlijk weinig. Dit is echter heel simpel op te lossen door dit op te nemen in je settings.php:

  1. $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];

Drupal 6 zou hiervoor waarschijnlijk een speciale instelling gaan hebben, maar dit werkt voor mij perfect.

 

Oh ja, *ooit* zal er wel eens iemand langskomen die een deftige nieuwe layout kan maken hoop ik. Wees blij dat ik me er niet mee bezig hou want als developers dat moeten doen gaat het resultaat heel Web 0.9 zijn ;)

The day the routers died..

One advantage of ipv6 people seem to be forgetting; everyone is is finally going to have to register everything properly in dns because nobody can remember those long ip addresses ;)

Blog Category:

Het is weer september..

Week 1
De kindjes moeten weer naar school. Ze zijn niet allemaal even gezond en verkoudheden en dergelijk beginnen zich te verspreiden onder de kinderen.
Week 2
Nadat de kinderen er bijna vanaf zijn, worden de ouders getroffen.
Week 3
Mensen zonder kinderen zien hun collegas op het werk ook ziek worden. Je kan al raden wie die volgende reeks slachtoffers is.

En ik zit dus in die laatste groep. Toch wel erg, juist op vrijdagavond begint dat op te komen. Heel m'n weekend naar de kl(#$*n en de maandag als ik weer moet gaan werken zal het wel weer voorbij zijn.

Blog Category:

Useful little utilities

Aside from the usual web browsers, email client and office suite, what is installed on your laptop? Over time I collected a number of useful utilities, amazing enough, most of the onces that that I use daily could still fit on a floppy.
Yes, my laptop is running windows, with good reason but thats a different discussion.

PuTTY
A free SSH client that I use all the time, mostly to connect to systems for which I don't need to load a saved session.
3CDaemon
A small TFTP, FTP and Syslog server. Nothing to run 24/7 but very handy to quickly set up a server to transfer files. I mainly use the TFTP function to upgrade devices and copy config files.
SecureCRT
This application isn't free but it is the one I mostly use to access serial consoles because it allows me to store different profiles for different devices. I also use it for my larger list of SSH bookmarks, SecureCRT handles those better than PuTTY. If anyone knows a free alternative, let me know but don't dare to suggest hyperterm ;)
ipcalc
Simple command line (or web) ip calculator - useful when calculating netmasks on a monday morning
Active Directory Explorer
One from the sysinternals collection. Useful when looking up the full DN of an object in AD in case I can't reproduce it just by looking at the AD structure.
BIND Dig
Dig for troubleshooting DNS issues because standard windows nslookup is just so horrible. It's included in the BIND package for windows, you can just copy the required files for dig without installing the full BIND of course.
Metapad
Just as a notepad replacement.
VIM
A real editor.
TrueCrypt
Used to encrypt my data partition so in case my laptop gets stolen, they will have a lot more trouble accessing the good stuff.

Of course there is a lot more (firefox, winscp, filezilla, openoffice, msoffice,...) but everyone already knows those.
Just by looking at this list, I don't think it would be difficult to figure out what my job is.

Blog Category:

Pages

Subscribe to Bart Jansens RSS Subscribe to Bart Jansens - All comments