We offer the articles below in the hope that they will be useful, but we cannot accept liability for any problems caused by the instructions that they contain. If you have a problem, question or feedback relating to one of our articles, please post a comment so that other readers can benefit. We regularly review comments and reply or update the articles, to ensure their continued usefulness. All articles are provided free, without any advertising or tracking, for the benefit of the technical community.

If you require paid commercial support, please contact us for assistance.

How to add custom configuration options to phpMyAdmin on Debian/Ubuntu

By default, phpMyAdmin is missing a number of useful configuration options. When you install it from source, you can set these options by editing /path/to/phpmyadmin/ However, Debian and Ubuntu package up phpMyAdmin and store things in a slightly different place. This makes installation, update and maintenance much more convenient, but does make things slightly more confusing when you want to set custom options.

Syntax checking PHP, JavaScript, Python automatically with Git

When reviewing code, a simple first step in checking that it doesn’t include any errors is to run a syntax check. In this post, I outline how to set up tools to scan all the code in a directory for syntax errors, and how to run this scan automatically when committing your code to git. For simplicity’s sake I am assuming that you are running Ubuntu, but the principles apply to any development environment.


The command line version of PHP (package php7.x-cli) allows you to syntax check a single file:

Filtering email by country using SpamAssassin on Debian

In this post, I describe how to set up spam filtering rules based on the country that an email was sent from, using SpamAssassin. These notes are based on Debian Bookworm, but the principles are very similar for other versions of Debian and Ubuntu. If you run a mail server that primarily only receives mail from a few countries, this guide should be very helpful to you in the fight against spam.

PHP 7 backwards compatibility library for mysql and ereg functions

The very commonly used mysql_* and ereg* PHP functions were removed in PHP 7. For very large codebases, refactoring the code to remove them just isn't practical. To that end, we have developed a compatibility library to enable existing websites and PHP scripts to keep running under newer PHP versions.

Linux AltGr shortcuts for Vietnamese characters

Writing Vietnamese correctly requires diacritics that aren’t commonly used in Western languages. Miss one out and you completely change the meaning of what you’re writing. As I frequently communicate in Vietnamese it’s important to be able to input diacritics, which is a bit of problem since Western keyboards don’t include them. On my own laptop I use IBus to allow me to switch into UniKey mode, but it’s a bit fiddly to set up, and it’s not an option when I’m using a different computer.