Peruser MPM for Apache 2.x
Peruser is an Apache 2.x module based on metuxmpm, a working implementation of the perchild MPM. The fundamental concept behind all of them is to run each apache child process as its own user and group, each handling its own set of virtual hosts. Peruser and recent metuxmpm releases can also chroot() apache processes. The result is a sane and secure web server environment for your users, without kludges like PHP's safe_mode.
Metuxmpm creates one child process per unique user and group, which then spawns threads to handle requests. This requires you to use multithreaded versions of PHP, as well as Perl and Python if you want to use mod_perl and mod_python. Between the three of them, and all the third-party modules and libraries they link to, there can be a lot of non-threadsafe code involved. That can cause nasty crashes that are very hard to reproduce and diagnose.
Currently a non-threaded Apache, along with non-threaded PHP, Perl, and Python is the most stable solution for hosting services. Unfortunately, just removing thread support from metuxmpm leaves you with just one apache child handling requests for one or more virtual hosts. Peruser, provides multiple processes for each unique user/group/chroot. Although it's working well so far but there is still a lot of room for improvement. Check the forum if you have questions, suggestions, or patches :)
Download
Peruser is distributed as a patch to the Apache source. There are also binary builds available on the download page.
Current Version: 0.3.0
- Peruser 0.3.0 for Apache 2.2.3 (Released October 4th, 2007)
Patches for 0.3.0:
- DataCode Peruser 0.3.0 DC3 Patch (Released May 28th, 2009)
- DataCode Peruser 0.3.0 DC3 FreeBSD BugFix Patch (Released Aug 18th, 2009)
Currently you have to apply these patches after the Peruser 0.3.0 patch until the next 0.4.0 'Fusion' release is finished.
Development Version: 0.4.0RC2
- Peruser 0.4.0 release candidate 1 for Apache 2.2.14 (Released November 21st, 2009)
- Peruser 0.4.0 release candidate 2 for Apache 2.2.16 (Released August 30st, 2010)
Resources
Contribute
If you want to help us, you can contact us via the forum or directly leave a note in the contributors page.
You can also report a problem with Peruser, and view open tickets.

