For a long time I wanted to be able to run both PHP 4 and PHP 5 on the same server. Now I finally managed to come up with a solution that is easy to install and easy to use.

  1. Add the Debian Backports repository to your /etc/apt/sources.list
    deb http://www.backports.org/debian/ sarge-backports main contrib non-free
  2. Issue a package update: aptitude update
  3. Install PHP 5 as CGI module: aptitude install php5-cgi
  4. Configure Apache by adding the following lines to your main config file. In my case this was /etc/apache2/apache2.conf
    ScriptAlias /php5-cgi /usr/lib/cgi-bin/php5
    Action php5-cgi /php5-cgi
  5. Now find the Virtual Host you want to run on PHP 5 and simply put the following line into the <Directory> directive.
    AddHandler php5-cgi .php
    This overrides the default handler for files ending in .php which would be the normal PHP 4 module. Whit this directive it is now parsed and executed by the PHP 5 CGI binary.
  6. Reload your webserver config with
    /etc/init.d/apache2 reload

Another entry in my virtual “braindump” category, so I don’t have to look it up somewhere else all the time.

If you want to periodically delete files in a specific directory the unix program find comes to the rescue. In my specific case I needed to delete all the movie files from a surveillance camera that where older than 30 days.

This is the crontab entry to accomplish that:
0 0 * * * /usr/bin/find /videos/ -type f -name '*.avi' -mtime +30 -exec rm {} \;
(everything in one line)

The code runs the program /usr/bin/find every day at midnight (0 0 * * *). It checks the directory called /videos for everything that is a file (-type f), has a name that ends in .avi (-name '*.avi') and is created 30 days ago or before that (-mtime +30).
The command then executes rm (remove) on all those files (-exec rm {} \;).

I updated the kernel image via aptitude on one of my Debian Sarge servers but after a reboot it didn’t come up again. My first thought was that maybe there was something wrong with the boot loader and since I already wanted to switch from Lilo to Grub I took the opportunity and did just that.

Luckily the changeover is very easy, just follow those steps:

  1. aptitude install grub
  2. grub-install /dev/hda (Replace /dev/hda with the disk you want to install your bootloader on)
  3. update-grub to create the file menu.lst which holds all the information for booting with Grub
  4. Now we have to remove Lilo: aptitude purge lilo

That’s all folks! 🙂

If you want to automatically update the menu.lst whenever you install a new kernel, add the following to /etc/kernel-img.conf:
do_bootloader = no
do_initrd = Yes
postinst_hook = /sbin/update-grub
postrm_hook = /sbin/update-grub

…and now, reboot!

Inspired by a blog post from Adrian Sutton and the comments beneath it I am now documenting how I train Spamassassin from within Apple Mail.
The setup is fairly straight forward but implies that you at least have a working Spamassassin instance running somewhere and know your way around UNIX a little bit. So I’m just going to explain the rough details to get you going.

  1. Switch on the bayes database for SA. On my Debian box this is done via putting the line use_bayes 1 in the file /etc/spamassassin/local.cf. After that restart SA (eg. /etc/init.d/spamassassin restart)
  2. Let SA put all your Junk Messages in the folder “Junk” in your IMAP Account
  3. Let Apple Mail put all your Junk Messages in the folger “Junk” in your IMAP Account
  4. Install a little Cronjob to have SA learn Spam from your Junk folder and Ham (=not Spam) from your Inbox. The following is my script:
    echo "----learn spam----"
    sa-learn --spam /var/opt/vmail/no-panic.at/flo/Maildir/.Junk/*
    echo "----learn ham----"
    sa-learn --ham /var/opt/vmail/no-panic.at/flo/Maildir/*

    Note: those are just 4 lines, the blog just wrapps the two ‘sa-learn’ lines because of limited horizontal space. Of course you have to change the path to the real location of your ‘Junk’ folder.
  5. Last thing to do is installing the cronjob. Mine looks like this:
    0 */4 * * * /path_to_your/script > /dev/null 2>&1

Actually my setup involves learning from 4 different user accounts, who all use Apple Mail just to get more Ham- & Spam-volume faster.
I hope this is helpfull to you. It works perfectly on my server for over a month now.

This article shows how to run a file-, print-, HTTP proxy- DHCP-, and time server for small and medium enterprises (SME) on one single Debian Sarge system. It is very easy to set up, and management is done with an easy-to-use web interface called eBox so once the system is set up, you can forget about the command line.

…not that I would “forget about the commandline” but this could actually come in handy sometimes.

read more | digg story