Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37422519
en ru br
Репозитории ALT
S:2.4.57-alt2
D:2.2.9-alt11
5.1: 2.2.24-alt2.M51.1
4.1: 2.2.8-alt1
4.0: 2.2.6-alt4
+updates:2.2.6-alt2
3.0: 2.0.55-alt1
+backports:2.0.59-alt0.M30.1
www.altlinux.org/Changes

Другие репозитории
Upstream:2.2.8

Группа :: Система/Серверы
Пакет: apache2

 Главная   Изменения   Спек   Патчи   Исходники   Загрузить   Gear   Bugs and FR  Repocop 

<html>
<head>
</head>

<body bgcolor="#FFFFFF" leftmargin=0 topmargin=0
>

<table border=0 cellpadding=0 cellspacing=0 width="100%" height="100%">

<!-- END HEADER -->

<table cellpadding=20><tr><td class="normal_font">

<h2>Peruser MPM for Apache 2</h2>

<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td valign="top"><b>Download:</b></td>
<td class="normal_font">
<a href="/files/httpd-2.2.3-peruser-0.3.0.patch">httpd-2.2.3-peruser-0.3.0.patch</a> (Released October 4th, 2007)
</td>
</tr>

<tr>
<td><b>Mailing List:</b></td>
<td class="normal_font">
<a href="/mailman/listinfo/peruser">http://www.telana.com/mailman/listinfo/peruser</a>
</td>
</tr>
</table>

<p>Peruser is an Apache 2 module based on
<a href="http://www.metux.de/mpm/">metuxmpm</a>, a working implementation of
the <a href="http://httpd.apache.org/docs-2.0/mod/perchild.html">perchild</a>
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.</p>

<p>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.</p>

<p>I required a non-threaded Apache, along with non-threaded PHP, Perl,
and Python. Unfortunately, just removing thread support from metuxmpm
leaves you with just one apache child handling requests for one or more
virtual hosts. I created Peruser, which provides multiple processes
for each unique user/group/chroot. Although it's working well so far
(for me), there is a lot of room for improvement. Write the mailing list
if you have questions, suggestions, or patches :)</p>

<br><h2>FAQ</h2>

<blockquote>
<div style="border: 1px solid black; background: #C7CFDB; padding: 16px;">
<b>Q.</b> What operating systems does peruser work on?

<br><br><b>A.</b> I'm targetting Linux exclusively, myself, as that's
what I need peruser to run on. Unfortunately, I can't do much with
bug reports for operating systems other than Linux; however, I'll gladly
accept any patches as long as they're compatible with Linux.

<br><br><br><b>Q.</b> Does peruser support mod_ssl?

<br><br><b>A.</b> Experimental support for mod_ssl has been added
as of version 0.2.0. Another option is to use an SSL-enabled
reverse proxy, such as Pound, which also has load-balancing features.
See <a href="http://www.apsis.ch/pound/">http://www.apsis.ch/pound/</a>
for details.

<br><br><br><b>Q.</b> Is peruser ready for production use?

<br><br><b>A.</b> In general, no. Although I run it on this production
system, if it breaks I can usually fix it, or revert to an older version
that does work. At this point the project needs developers and testers
more than end-users. However, if you really want to run it on a production
system, just be sure to test it thoroughly first, and remember there is
no warranty. If it breaks, you get to keep both pieces :)

<br><br><br><b>Q.</b> Is peruser as scalable as vanilla apache?

<br><br><b>A.</b> No. Regular apache uses its entire pool of processes
to handle all incoming requests; while peruser allocates smaller pools
of processes assigned to different virtual hosts. This can never be as
efficient. My suggestion is to load up on RAM, and perhaps utilize
the load-balancing features of Pound and run multiple webservers.

<br><br><br><b>Q.</b> Is KeepAlive supported?

<br><br><b>A.</b> It is supported as of version 0.3.0.

<br><br><br><b>Q.</b> Is there a version of peruser for apache 2.0?

<br><br><b>A.</b> A patch for version 2.0.61 is <a href="/files/httpd-2.0.61-peruser-0.3.0.patch">here</a>.
</div>
</blockquote>

<br><h2>Installation</h2>

<blockquote>
<xmp style="border: 1px solid black; background: #C7CFDB;">
$ cd httpd-2.2.3/
$ cat /path/to/httpd-2.2.3-peruser-0.3.0.patch | patch -p1
$ ./buildconf
$ ./configure --with-mpm=peruser [addtional configure arguments]
</xmp>
</blockquote>

You're on your own after this point. Seriously, if you're not
familiar with building apache, this project is not (yet) for you.

<br><br><h2>Configuration Example</h2>

<blockquote>
<xmp style="border: 1px solid black; background: #C7CFDB;">
<IfModule peruser.c>
ServerLimit 256
MaxClients 256
MinSpareProcessors 2
MaxProcessors 10
MaxRequestsPerChild 1000

# kill idle processors after this many seconds (0 to disable)
IdleTimeout 60

# kill hung processes after this many seconds (0 to disable)
ExpireTimeout 300

# set up a few multiplexer processes running as nobody
Multiplexer nobody nobody
Multiplexer nobody nobody
Multiplexer nobody nobody

# Processor <user> <group> <chroot>
# chroot is optional
Processor alice users /home/alice
Processor bob users
</IfModule>

<VirtualHost alice.com>
ServerName alice.com
# normal vhost configs

<IfModule peruser.c>
# this must match a Processor line
ServerEnvironment alice users /home/alice

# these are optional - defaults to the values specified above
MinSpareProcessors 4
MaxProcessors 20
</IfModule>
</VirtualHost>

<VirtualHost alice.net>
...
# several vhosts can use the same ServerEnvironment,
# as long there is one matching Processor defined
ServerEnvironment alice users /home/alice
...
</VirtualHost>

<VirtualHost bob.com>
...
ServerEnvironment bob users
...
</VirtualHost>
</xmp>
</blockquote>

</td></tr></table>

<!-- BEGIN FOOTER -->

</td>
</tr>

</table>

</td>

<td width=8 background="/images/shadow.gif" bgcolor="#EEEEEE"></td>
<td bgcolor="#EEEEEE">&nbsp;</td>
</tr>
</table>


</body>
</html>
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin