Hi Mark --

> Another question: Do you store Site::Configuration in the "perllib"
> directory with the other perl modules? I found this made site 
> launches a
> little more difficult, because I would want to copy 
> "everything but the
> Config module" to the live site, which have an existing Config module
> configured for the live site. Instead, I store a config file in a
> "config" directory.
> 
> Perhaps you solve this with the "if $ENV{DEVMODE}" construct you
> illustrated above.


I definitely store "Site::Configuration" along with all the other
modules.

As you've identified, I use a mechanism similar to my "if $ENV{DEVMODE}"
example to automatically change the run-time configuration.  The system
I use is based on a few ideas:

  1. There are things called "environments", of which "production",
"staging", and "Mark's development" would be a few.
  2. Each environment should have its own Apache server.
  3. Environments need to be centrally managed.
  4. The process for moving work between environments must be totally
consistent for Quality Assurance's sake.
  5. Each environment is defined by a number of distinct run-time
settings.


Regarding number five, here is a list of run-time properties for
environments in my typical system:

  ENVIRONMENT_NAME
  DEV_ROOT
  LOG_DIR
  SITE_HOST_NAME
  APACHE_IP
  APACHE_ROOT
  APACHE_PIDFILE

For each environment I have a hash containing values for these
parameters.  A control script (run via sudo) is used to start and stop
Apache.  This control script reads the environment name (e.g.,
"production", "mark", "jesse", etc.) from a UNIX environment variable,
and selects the proper hash of environment configuration settings.  This
control script then *dynamically* creates an Apache "httpd.conf" from a
template (using HTML::Template, of course) populating things like the IP
address and host name.  (N.b., the "DEV_ROOT" property is used to
automatically set PERL5LIB and HTML_TEMPLATE_ROOT.)

As you can imagine, this system eliminates the problems usually related
to moving changes between environments.  I've been using this system for
years.


TTYL,

-Jesse-


--

  Jesse Erlbaum
  The Erlbaum Group
  [EMAIL PROTECTED]
  Phone: 212-684-6161
  Fax: 212-684-6226








---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[EMAIL PROTECTED]/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to