Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jul 2004 17:28:13 +0200
From:      David Landgren <david@landgren.net>
To:        freebsd-questions@freebsd.org
Subject:   Re: Is there a Complete "Package"(NOT Ports) for: [Apache+PHP+MySQL+Mod_SSL+Mod_Perl]  ??  -  newbie+3
Message-ID:  <4107C60D.5050607@landgren.net>
In-Reply-To: <41082894.5070007@broadpark.no>
References:  <20040728073411.74741.qmail@web41006.mail.yahoo.com> <41082894.5070007@broadpark.no>

next in thread | previous in thread | raw e-mail | index | archive | help
Henrik W Lund wrote:

> DK wrote:
> 
>> Hi all,
>>
>> I just wanted to know if there is available anywhere a Complete 
>> "Package" that is Ready to
>> Go for a FreeBSD Server imlementation that contains:
>>
>> Apache
>> PHP
>> MySQL
>> Mod_SSL
>> Mod_Perl
>>
>> ... & before anyone flames, yes I know you can just d/l the ports & 
>> compile from source!
>>
>> ... Thats not what I am looking for. Tried that & found it was too 
>> much messing around
>> (compared to the equivalent on Windows 2000)

Um, there is no equivalent on W2K, but I digress...

One thing to remember is that Apache and mod_perl are usually run as two 
separate instances.

You run static Apache off port 80, and dynamic Apache (hence +mod_perl) 
on port 8000 or whatever, and this is reverse-proxied back through the 
static server at port 80 (and 8000 is firewalled off from the outside). 
This results in big savings in memory. mod_perl processes can weigh 80Mb 
apiece, easily. Standard httpd processes weigh in at about 3Mb.

You don't want to tie up an 80Mb process spoonfeeding some luser on a 
modem. Reverse proxying lets you have a large number of small static 
processes and only a handful of mod_perl processes.

There are also a number of ways you can proxify the dynamic requests, so 
there's no one-size-fits-all. The easiest way is to do something like:

ProxyPass        /dyn http://localhost:8000/
ProxyPassReverse /dyn http://localhost:8000/

Then you have to decide who gets the https port. My advice would be let 
the static handle it. (--enable-ssl)

Next, the question of MySQL. I expect you mean that PHP and/or mod_perl 
needs MySQL support. PHP configure will detect this automatically if you 
have it installed. In mod_perl, you'll probably want to attack it via 
Apache::DBI and DBD::Mysql.

Finally, you can install mod_perl and PHP and DSO (i.e., loadable 
modules), after you have your basic installation up and running. (Just 
remember to --enable-so).

The level of PHP processing you plan to do will indicate whether you 
should be running it directly out of port 80 or proxified from 8000.

There are so many ways to put these pieces together, depending on your 
needs, that there is no simple package that puts them all together. I 
sympathise with your remark that it's so much easier under W2K. The 
trouble is, a well-tuned mod_perl installation will run rings around 
anything IIS/ASP can do, but that comes at a cost of knowing how to set 
it up. I would recommend investing in the mod_perl book by Stas Beckman 
and Eric Cholet.

	http://www.modperlbook.com/

Regards,
David



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4107C60D.5050607>