When you install Apache httpd or Apache Tomcat, everything goes into a single directory tree. That's the most natural way for the servers to ship as it means that they can be installed, tested, and then removed again easily if you wish without any complex procedure being involved.
But for a live environment, chances are you'll want to split the data into a separate directory area (that way, you can upgrade the server but retain the web site later) and you might even want to place the read-only files such as the executable binaries on a shared resource, but leave the configuration files and log files in a separate (third) area. Here are some tips / summary schemes for setting these up
Apache httpd
1. Split out the log and conf directories to the new RW area
2. Change the DocumentRoot directive in the configuration file, and also the Directory permissions directive that relates to it.
3. Create the new document root directory
4. Change /etc/init.d to start up using the -d and -f options to apachectl in the start section
5. Ensure that ServerRoot is COMMENTED OUT httpd.conf
6. Restart the Apache httpd server
Note - you can then use an environment variable input to the /etc/init.d/httpd script to control where the various parts are located
Apache Tomcat
1. Stop the Tomcat Server
2. Move the webapps directory to the new data (website) area and change the server.xml to reflect the change - alter the value for the appBase property in the Host tag
3. Create a new directory for the Read/Write area and move the conf and log subdirectories there
4. Set the CATALINA_BASE environment variable to point to the read/write area
5. Restart Tomcat using ./bin/catalina.sh start
(written 2005-10-16, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
A656 - Web Application Deployment - More Tomcat Configuration [282] Short weekend - (2005-04-17)
[1370] Apache Tomcat Performance Tuning - (2007-09-29)
[1718] Increasing Java Virtual Machine memory for Tomcat - (2008-07-24)
[1899] Virtual Hosting under Tomcat - an example - (2008-11-22)
[2272] Monitoring and loading tools for testing Apache Tomcat - (2009-07-07)
[3018] Tuning Apache httpd and Tomcat to work well together - (2010-10-27)
A603 - Web Application Deployment - Further httpd Configuration [345] Spotting a denial of service attack - (2005-06-12)
[526] Apache httpd - serving web documents from different directories - (2005-12-12)
[550] 2006 - Making business a pleasure - (2006-01-01)
[631] Apache httpd to Tomcat - jk v proxy - (2006-03-03)
[649] Denial of Service ''attack'' - (2006-03-17)
[662] An unhelpful error message from Apache httpd - (2006-03-30)
[755] Using different URLs to navigate around a single script - (2006-06-11)
[853] To list a directory under httpd on a web server, or not? - (2006-09-02)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
[1009] Passing GET parameters through Apache mod_rewrite - (2006-12-27)
[1080] httpd.conf or .htaccess? - (2007-02-14)
[1121] Sharing the load with Apache httpd and perhaps Tomcat - (2007-03-29)
[1207] Simple but effective use of mod_rewrite (Apache httpd) - (2007-05-27)
[1351] Compressing web pages sent out from server. Is it worth it? - (2007-09-14)
[1355] .php or .html extension? Morally Static Pages - (2007-09-17)
[1377] Load Balancing with Apache mod_jk (httpd/Tomcat) - (2007-10-02)
[1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
[1551] Which modules are loaded in my Apache httpd - (2008-02-23)
[1554] Online hotel reservations - Melksham, Wiltshire (near Bath) - (2008-02-24)
[1564] Default file (MiMe types) for Apache httpd and Apache Tomcat - (2008-03-04)
[1566] Strange behaviour of web directory requests without a trailing slash - (2008-03-06)
[1619] User and Group settings for Apache httpd web server - (2008-04-22)
[1636] What to do if the Home Page is missing - (2008-05-08)
[1707] Configuring Apache httpd - (2008-07-12)
[1762] WEB-INF (Tomcat) and .htaccess (httpd) - (2008-08-20)
[1767] mod_proxy and mod_proxy_ajp - httpd - (2008-08-22)
[1778] Pointing all the web pages in a directory at a database - (2008-08-30)
[1939] mod_proxy_ajp and mod_proxy_balancer examples - (2008-12-13)
[1954] mod_rewrite for newcomers - (2008-12-20)
[1955] How to avoid duplicating web page maintainance - (2008-12-20)
[1974] Moving a directory on your web site - (2009-01-03)
[2060] Database connection Pooling, SSL, and command line deployment - httpd and Tomcat - (2009-03-01)
[2478] How did I do THAT? - (2009-10-26)
[2900] Redirecting a page - silent, temporary or permanent? - (2010-08-03)
[3133] An image from a website that occasionally comes out as hyroglyphics - (2011-01-14)
[3449] Apache Internal Dummy Connection - what is it and what should I do with it? - (2011-09-19)
[3635] Parse error: parse error, unexpected T_STRING on brand new web site - why? - (2012-03-03)
[3862] Forwarding a whole domain, except for a few directories - Apache http server - (2012-09-17)
[3955] Building up from a small PHP setup to an enterprise one - (2012-12-16)
[4001] Helping search engines with appropriate 400 error codes - (2013-02-11)
[4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)
Some other Articles
I wanna be a Python trainerYesterday was Kiss and RideStand alone PHP programsTell them three timesSeparating 'per instance' data from binaries and web sitesChanging Tomcat's web.xml and reloading a web applicationTechnical LonelinessSplitting the differenceBig numberShortened interactive commands