If you're actually running CentOS 5.4, you may want to consider updating to 5.8. The
httpd package, for example, has updates as recent as early 2012.
yum update is not updating anything, it's because the repository you're pointing at does not have anything more recent. This suggests that you're local yum configuration points explicitly at CentOS 5.4 rather than more generically to CentOS 5. Take a look at your
yum configuration in
/etc/yum.repos.d/CentOS-Base.repo; it should look something like this:
name=CentOS-$releasever - Base
name=CentOS-$releasever - Updates
# ...and a few more entries...
mirrorlist entries look different, or if you're pointing at an explicit URL using
baseurl instead of
mirrorlist, try updating the entries to look like this and running
yum update again.
This file (
/etc/yum.repos.d/CentOS-Base.repo) is installed by the
centos-release package, so you could also consider grabbing the package from a mirror and installing it manually, then running