Educating the world

Our blog has over 10,000 readers a month

Plesk Mailman cheat sheet

June 7th, 2010

Plesk provides mail list capabilities via MailMan which is one of those Unix programs (services) that has just been around forever. The software is pretty much rock solid and hasn’t been updated in ages. It does what it says on the tin. It allows users to sign up for a mail list and manage their delivery options.

As far as administering a MailMan list goes there is about a thousand trees worth of documentation. Once the application was completed the developers had no more excuses and so had to finish writing the documentation as well &#59;) Although the documentation is very thorough you do, kind of, have to read almost all of it in order to find the bits you want. It is like writing socket applications - loads of documentation and options but you generally just reuse the same 5 lines! MailMan has just the same characteristics, there are only a couple of things you need to do.

So here is a cheatsheet for the most commonly used URLs for managing a MailMan list. For the purpose of the following examples I will assume the list in question is called my-list-name and list email address is

Normal user login
List email address =
Password reminder, subscribe and unsubscribe

Administrator login

Archive - email history

Export list members
This exports the list of members in the following form and places one member per line:

“Full name” <emailaddress>

From the command line:

/usr/lib/mailman/bin/list_members -f my-list-name

List commands
Send blank email with subject of:


to (notice the -request on the end)

List of members
Send blank email with subject of:

who <password>

to (notice the -request on the end)

Subscribe to list
Fill in “Subscribing to My-List-Name” section.

Personal settings

Change email address
From the following page you can unsubscribe from the list using your old email address. When you have unsubscribed from the list you can add yourself back on under a different email address and password.

Administration section

Missing B2evolution posts

June 2nd, 2010

I recently had a very strange problem with my B2evolution installation. Some of my posts had gone missing! When I say missing I mean half missing! You could search for the articles and they would appear in the list of search results. You could also find them by looking at them in the year/month/day grouping view. When the article was displayed in the results view or the date grouping view it looked fully formed, however when you clicked on the title to open the actual article it replaced the last ‘-’ (dash or minus (for the search engines &amp;#59;&amp;#41; )) in the URL title with a ‘:’ (colon) and gave the message:

Tags: move-a-window-when-its-title-bar-is-off
Sorry, there is nothing to display…

I asked in the forums and they said check the configuration file for a work around. So in $BLOGROOT/conf/_advanced.php I found the comment in question:

Enable a workaround to allow accessing posts with URL titles ending with dash (workaround for old bug).

In b2evolution v2.4.5 new tag URLs were introduced: You could choose to have tag URLs ending with a dash. This lead to problems with post URL titles accidentally ending with a dash (today, URL titles cannot end with a dash any more): Instead of displaying the post, the post title was handled as a tag name. When this setting is enabled, all tag names which are exactly 40 chars long and end with a dash are handled in the following way:
Try to find a post with the given tag name as the URL title. If there is a matching post, display it; otherwise, display the normal tag page.

Note: If you use a 39 chars-long tag name, have an URL title which is the same as the tag *but* additionally has a dash at the end and you use the dash as a tag URL “marker", you won’t be able to access either the post or the tag page, depending on the value of this setting.

@global boolean $tags_dash_fix
@internal Tblue> We perhaps should notify the user if we detect bogus post URLs (check on upgrade?) and recommend enabling this setting.

So to fix the problem immediately add the following line to $BLOGROOT/conf/_basic_config.php:


$tags_dash_fix 1;

This will fix the problem and give you time to fix the database. Fixing the database requires SQL command line access to the database so careful what you do! Always take a backup before attempting any SQL on a database.

To check which other articles have been affected you can run the following bit of SQL:


concat('|', post_urltitle, '|')
FROM evo_items__item
WHERE post_urltitle like '%-';

This gives you the following output. I have surrounded the post url title with ‘|’ (pipe) characters so you can easily see where the field value starts and stops.

| post_ID | concat('|',post_urltitle,'|')              |
|     132 | |attempted-to-assign-id-from-null-one-to-| |
|      53 | |import-and-access-to-mysql-database-for-| |
|      90 | |move-a-window-when-its-title-bar-is-off-| |
|     105 | |prevent-tomcat-redeploying-when-running-| |

We will now run the SQL that removes the last ‘-’ (minus or dash) from the post’s URL title.


UPDATE evo_items__item SET
post_urltitle = substr(
post_urltitle, 1, length(post_urltitle)-1
) WHERE post_urltitle like '%-';

For each record where the post_urltitle ends with a ‘-’ (minus), replace it with the parts of the text from character position 1 to character position one less than the length of the text.

When you have completed the database fix you can remove the $tags_dash_fix line from $BLOGROOT/conf/_basic_config.php.

The current B2evolution code prevents post URL titles from being created ending in a ‘-’ (minus or dash) so once you have fixed the issue it doesn’t need to be revisited.

Adding birthdays to the N900 calender

May 24th, 2010

One of the nice things about the N900 is the integrated address book. All contact details exist in the same place: telephone number, email address, SkyPe name, postal address to name but a few. You can also add auxiliary information too, like birthdays.

The calender scans the address book so that you get a nice little birthday cake icon on the day to show that it is someone’s birthday. If an event is a birthday it is automatically an all day event and appears in pink instead of blue.

This does lead to a couple of problems. Firstly there is no way to add a birthday event from the calender and secondly there is no way to add a birthday event for someone that is not in your contacts list.

I can live without the first problem it’s just a case of adding the one-to-one relationship from the correct side but the “not being able to add birthdays to people not in the address book” is a bit of a pain. I didn’t want to clutter up my contacts list with a whole load of casual acquaintances but I’d like to remember their birthdays. I suppose the idea is that all your contact information for a person goes into the same place. They may not have a mobile but they must live somewhere?

Well not sure if my second grumble is a worthy point, it’s just that when creating an event you can set the event type to N900 (Synchronised) or Private and it wouldn’t take much to add birthday into that spot too.

Upgrading Plesk 9.3

May 7th, 2010

I keep this blog article as a place holder to collate all the issues I have with upgrading my Plesk server from 8.x to 9.3. Each time Plesk produces a new version there are always hacks and fixes that need to be applied to make things work. These days you have to be more than just a system’s administrator; you have to be a programmer and script’er. Luckily for me (and you) I am all three!

Spam is not filtered properly for a domain
The first manifestation of this problem is in the /var/log/messages file. The following message repeats a couple of times a minute.

spam_hook[pid]: unable to open configuration file /etc/psa/psa.conf: Permission denied

The /etc/psa/psa.conf file holds the locations to system resource folders used by Plesk, for example PLESK_MAILNAMES_D which points to the root of the mail folders for each domain.

Checking the permissions of the file show that it is readable:

# ls -l /etc/psa/psa.conf
-rw-r–r– 1 root root 2564 Mar 9 15:16 /etc/psa/psa.conf

so the problem must be with one of the parent folders. If you didn’t have access to /etc then almost everything would stop working and you would notice straight away. So the problem must be with the /etc/psa folder. Checking that revealed a permission error.

drwxr-x— 5 psaadm psaadm 4096 May 6 12:02 /etc/psa

With the permissions set this way (750), the pop user and the spam filtering daemons would fail because they do not have the required permission to read the psa.conf file.

In order to fix the problem we must allow all users to read files from that folder. We will add the execute permission to the folder to allow others to read a file if they explicitly know the name but won’t allow anyone else to view the contents of the folder or to alter anything in it.

Changing the permissions like so will allow the other programs and users to read the file.

chown 751 /etc/psa

which produces the file permissions:

drwxr-x–x 5 psaadm psaadm 4096 May 6 12:02 /etc/psa

There is no need to restart any services or reboot. Everything will just start working.

Armstrong & Miller - WWII RAF Sketches

May 4th, 2010

The “Armstrong & Millershow was a little hit and miss but it contained a set of genius sketches known as the “RAF Sketches".

Our 2 protagonists are RAF pilots who’s speech and behaviour is that of “the youth of today". I was on a bus last week listening to a bunch of teenagers talking like this. It is amazing how someone can talk so much, for so long without actually saying anything - a bit like Zane Lowe.

Satire at its best.

Season 1

Sketch 1: Trousers
Sketch 2: Compensation
Sketch 3: Hospitality
Sketch 4: Dog fight
Sketch 5: Germany
Sketch 6: Scramble
Sketch 7: Phone call
Sketch 8: Parachute

Season 2

Episode 1: Leaving you
Episode 2: Firing squad
Episode 3: Spies
Episode 4-1/2: Tunnel
Episode 4-2/2: Ratting

Red Nose Day 2009 - Comic Relief - BBC

Part 1: Medals
Part 2: Sponsored