howto

Need to know how to do something? Take a look through this list - covers topics such as converting video, compiling software in linux and tips for firefox.

Bash script to find most common 404

Mar
04
2010

Following Kevin Hankens post on why you shouldn't ignore Drupal 404 errors, I decided to go through yesterdays error_log on our live apache server (the one which hosts www.pponline.co.uk, www.sportbusiness.com and www.mychild.co.uk alongside around 40 other dupral sites).

Drupal, ImageCache & Performance

Nov
14
2009

A while ago we started having issues running a website. Bandwidth. Upon investigation, we saw that the majority of bandwidth was being use by image files and of those, lot was from the ImageCache folder. It was also causing a lot of excess server load by consuming Apache processes. Something needed to be done.

Patching can cause permission denied errors

Aug
11
2009
Tagged in , , &

I just updated this server to PHP 5.3. As all my sites are Drupal 6 it seems I have a few issues ahead which mean I need to patch Drupal to stop PHP complaining about deprecated stuff…

So I headed over to the post on drupal.org which is discussing 5.3 compatibility in Drupal 6 (which I personally think SHOULD go in) to grab a patch. I applied the patch with no problems. I refreshed a page and got a white screen so I checked the logs only to see…

Indenting in Vim

May
27
2009
Tagged in , &

Ever had that situation where you've enabled :set paste and pasted in hundred of lines of code into vim only to see it all fully left aligned? I just did… And bugger going over each line and manually indenting it! Want know how to indent a visual block of text?

How to use "sed" to find and replace

May
26
2009
Tagged in , , &

After Worldpay recently changed to use the RBS system, I was tasked with finding every instance of select.worldpay.com/wcc/purchase in our forms and replacing it with select.wp3.rbsworldpay.com/wcc/purchase. There appeared to be thousands of files and I wasn't going to do it manually…

Backing up a Drupal Database: Redux

Apr
27
2009
Tagged in , , , , , &

Back in November last year, I wrote a script which handled backing up a drupal database. There were quite a few comments and I've taken some on board and developed the script on a little further to be more "generic".

One of the main complaints/suggestions about my previous snippet was the hard coded nature of it. The follow script offers far more configuration through the command line itself.

I'm a lazy linux piper

Mar
11
2009
Tagged in , , , , &

This morning I updated a site to the latest release of Drupal 5.16. Nothing special there at all. I've done that many times as has (hopefully) mabye other drupal devs… However, I'm a bit of a newbie when it comes to SVN. Didn't I mention this drupal site was in an SVN repository? ;-)

So, I've svn copy'd the trunk to an "update_to_5.16" branch, checked out this branch and done a cvs up -dP -r DRUPAL-5-16. Everything is going according to plan so far. Next I run svn status to get a list of files which I need to mark as added or deleted (or to list anything else which has gone wrong). What happens next is I get a list of hundreds of CVS Template files which have been added to the CVS folders. For example…

How to import users into Drupal using Devel

Jan
15
2009
Tagged in , , &

The first test is a valid email address test. The second test is if an account exists for that email address. The third is if the username, generated by the "user" part of the email address, exists. If there are any issues, the "error" is logged into and array and printed at the end.

As the function goes along, a user is saves with the user part of the email address as their name, a random 6 character password and the email address as the contact address. In this example, it also give the user role number 3, which was our "subscriber" role.

Finding the largest files in a folder

Jan
06
2009
Tagged in , , &

I just needed to find the largest files in a folder (in an attempt to find out why it was so bloody huge!) and have ended up with the following handy combination of commands…

find /path/to/folder -size +1M -print0 | xargs -0 du -h | sort -nr

OpenSuse 11.0 Issues

Dec
12
2008
Tagged in , &

After about 4 days of using OpenSUSE 11.0, I'm not overly impressed with it in comparison to RedHat Enterprise 3/4/5, CentOS 5, Fedora 9 and Ubuntu 8.x (other distro's I've used). OpenSUSE has some annoying habits and default/unusual configurations…

Backing up a Drupal Database

Nov
26
2008
Tagged in , , , , , &

I was just dumping a database using mysqldump and I noticed that tables such as cache (and its cousins cache_page, cache_menu, etc), sessions and watchdog can be pretty big and are also not often essential for backing up. I mean, when you restore your web site do you really care about restoring people's logged in sessions from when the backup took place? I can understand maybe keeping watchdog; but then again should you lose your site you would probably lose it several hours after the backup so would miss out on any relevant watchdog notices.

Anywho… I did a mysqdump for a large database for a website I maintain and the dump came out at 400Mb. I then spent a few minutes cobling together a small script which would do a mysqldump but had some pre-programmed Regular Expressions to match specific groups of tables which it would only dump the structure for (ie, no data). After running this script, the SQL dump was only 220Mb. Much better! It also runs considerable quicker too and will cause less table locking.

So - the script?

SVN + NFS = svn nfs cant get exclusive lock

Nov
25
2008
Tagged in , , , &

Last night I was trying to configure SVN on a server. The setup was that the SVN Repo was on "srv2" and the frontend and code I wanted to import was on "srv1".

I created an NFS share on srv2 and mounted it on srv1 in /mnt/svnroot. The mount worked perfectly and I could touch and remove files from srv1.

So I tried to create a "sites" folder where I wanted to import a site I wanted to version control. This is where I started to have problems… The sollution was to add "nolock,bg" to the mount options on the client. Read on for more details!

List enabled services in Linux

Nov
21
2008
Tagged in , &

Today I needed to list all of the services which were enabled on boot-up for one of the servers I maintain. Obviously, my first port of call was to use the nifty tool ChkConfig like so…

Upgrading Netgear DG834PN

Oct
14
2008
Tagged in , &

Something I thought I'd post up quickly which caused me a little trouble just now…

I tried to upgrade my Netgear DG834PN (an ADSL WiFi router, EXCELLENT piece of kit incidentally) from the stock 1.3.30 firmware to the latest (as of writing) 1.3.39. There was no particular reason for the upgrade - I'm just a "bleeding edge" kinda guy!

Using Tar and SSH to improve SCP Speeds

Sep
03
2008
Tagged in , &

I am currently in the process of migrating several dozen sites between two servers. I tried using scp command to copy the sites over however scp is a very slow command when transferring many small files.

I did a little research on how to use tar over an ssh connection and realised that you could specify the stdout on tar.

Generate random string in MySQL

Jul
10
2008

Have you ever wanted to generate a random string in MySQL, say for assigning a random password to a list of users? Well here is a useful tip!

Synergy for OSX Leopard

Jul
07
2008

I recently setup my PC in the living room with my TV so I could play games and watch streamed video from the net (eg, BBC's iPlayer). Unfortunately this always meant having a keyboard and mouse attached.

Then came along Synergy.

Getting Lighttpd working with AWStats

Apr
21
2008
Lighttpd Logo

Following my previous post about configuring Lighttpd on this VPS Webserver to replace Apache I bring you a guide to configuring AWStats under Lighttpd. This process is differs to Apache as control of directories and aliasing is handled differently. There can also be complications if you have previously enabled the Drupal LUA Magnet script on your site for clean URL handling!

Accessing the Fragment from PHP - is it possible?

Mar
22
2008
Tagged in , &

peashoter has raised a good point in an issue report for GlobalRedirect. What happens to a URL which has a fragment in it - such as:

http://www.example.com/node/100#comments

I have done a google and cant find any answer to this. It appears that the fragment is not passed to PHP. This makes it a LOT harder to fix!

How much memory am I using?

Nov
08
2007

Following on from my previous post about how to check how many apache processes are running - I recently wanted to find out exactly how much memory my applications where using… So I did a little research and found a few new and useful commands!

Follow Me