Their is a package I looked at and one of my juniors used for a client called BURP (Basic User Registration Package). It can be found at this location.
But be warned - it is mod_perl based. However it was a snap to install, the documentation is very clear and the code was very well written IIRC.