chrooting exim4

If you ever get this error while chrooting exim4 then make sure that you have copied over /etc/services into your chroot directory.
T=remote_smtp defer (-1): TCP port “smtp” is not defined for remote_smtp transport

I spoke to today about submitting my job site to be listed in as one of the jobsites where recruitment companies can submit jobs.
Everything was going swimmingly until they quoted me £250 for the priviledge. They have 564 sites listed which means they have made £141,000. This is before the actual agencies pay to use the service. I cannot afford to throw money at an unknown with no guarantee of getting any jobs added to my website.
I also had a look at gojobsite to see what they charge for advertising a job and it costs £200 for a one off advertisement for two weeks. Of course they have the user base but with some effort from recruiters I could probably do it for free if I could get the jobs added to uklug.

Installing bbBOARDv2

I have been looking for some decent bulleting board software recently and having been bitten by PhpBB severe lack of security and the fact that most PHP based BB bulleting boards ie vbulletin etc seem to have the same problem I started to look for alternatives. One alternative I found was bbBOARDv2 which uses Perl and is compatible with PostgreSQL which is a bonus in my book. I decided to try it and this was were the fun began.
For some reason it kept complaining that it was missing a curly bracket at the end of the script, this was odd because in a non mod_perl env it would work fine.
I added the curly brace and the script would now compile and it appeared to be working except that it wanted 2.2Gb of memory and spurted the following complaint.
Deep recursion on subroutine “Compress::Zlib::AUTOLOAD” at /usr/lib/perl5/Compress/Zl line 87.
Woops! This is not so good. This would have killed my server if I had not caught it. I have now given up trying to install it because I don’t want it to bring down the server. I am awaiting some support which seems to be a long time arriving.

Chrooting Squid, Apache and Perl

Is fairly straight forward.
You will need to be able to use the following commands with some confidence
Tips. When copying files make sure your umask is set to 022 and alias cp as follows:
alias cp=”cp -p”
If you are copying over any perl XS files ie *.so files make sure you also use ldd on these. As an example the PostgreSQL drivers require:
ldd usr/lib/perl5/auto/DBD/Pg/ => /usr/lib/ (0xb7fbf000) => /lib/tls/ (0xb7e89000) => /usr/lib/i686/cmov/ (0xb7e58000) => /usr/lib/i686/cmov/ (0xb7d59000) => /usr/lib/ (0xb7cf1000) => /lib/tls/ (0xb7cc4000) => /lib/tls/ (0xb7cb2000) => /lib/tls/ (0xb7c9d000) => /lib/tls/ (0xb7c8e000)
/lib/ => /lib/ (0x80000000) => /lib/tls/ (0xb7c8b000) => /usr/lib/ (0xb7c68000) => /lib/ (0xb7c65000)
A quick way to find your shared object files is as follows.
find /chroot_directory_name/usr/ | grep perl | grep “.*\.so$”
You will already have copied most of the shared object files over while copying squid and apache but there are most likely a few extra ones you are going to need in particular if you are using the DBI.

storeDiskdInit: msgget: (28) No space left on device

2005/12/29 13:41:04| storeDiskdInit: msgget: (28) No space left on device
FATAL: msgget failed
Squid Cache (Version 2.5.STABLE9): Terminated abnormally.
CPU Usage: 0.018 seconds = 0.008 user + 0.010 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
This was remedied as follows:
echo 64 > /proc/sys/kernel/msgmni
echo 16384 > /proc/sys/kernel/msgmax
To make it permanent edit /etc/sysctl.conf and add:
kernel.msgmni = 64
kernel.msgmax = 16384
More details can be found here:
How do I configure message queues?