Changes for page Configuring Apache for WebObjects
Last modified by Aaron Rosenzweig on 2020/09/03 22:17
From version 20.1
edited by David Avendasora
on 2010/12/03 11:05
on 2010/12/03 11:05
Change comment:
There is no comment for this version
To version 23.1
edited by Quinton Dolan
on 2007/07/12 19:58
on 2007/07/12 19:58
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - ConfiguringApache forWebObjects1 +Programming__WebObjects-Web Applications-Deployment-Apache - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. avendasora1 +XWiki.qdolan - Content
-
... ... @@ -1,12 +1,12 @@ 1 -== Overview == 1 +== Overview == 2 2 3 -In a deployment scenario on Mac OS X, Linux, Solaris or even Windows, your applications will most likelyuseApachetoserver staticresources. Additionally, if you develop with WODirectConnectEnabled=false (you **should**, see the [[Direct Connect>>Development-Direct Connect]] section for details), you will be running your application locally through Apache as well. Apache is a very extensible web server that provides a huge number of capabilities, some of which we will detail here.3 +In a deployment scenario on Mac OS X, Linux, or Solaris, your applications will most likely be deployed on Apache. Additionally, if you develop with WODirectConnectEnabled=false (you **should**, see the [[Direct Connect>>Programming__WebObjects-Web Applications-Development-Direct Connect]] section for details), you will be running your application locally through Apache as well. Apache is a very extensible web server that provides a huge number of capabilities, some of which we will detail here. 4 4 5 -== Split Install == 5 +== Split Install == 6 6 7 -WebObjects applications are deployed in a "split install". A split install means that your application code, components, and resources are deployed in one location to be served from your WebObjects application (on OS X, ##/Library/WebObjects/Applications/ ##{{{}{_}YourApp{_}{}}}##.woa##), while your ##WebServerResources## are installed in another location (on OS X, ##/Library/WebServer/Documents/WebObjects/##{{{}{_}YourApp{_}{}}}##.woa/Contents/WebServerResources##) to be served directly by Apache. This provides the optimal performance scenario, as Apache is specifically tuned for serving static content, and it does not make sense to send requests for large binary files through WebObjects if it is not necessary.7 +WebObjects applications are deployed in a "split install". A split install means that your application code, components, and resources are deployed in one location to be served from your WebObjects application (on OS X, ##/Library/WebObjects/Applications///YourApp//.woa##), while your ##WebServerResources## are installed in another location (on OS X, ##/Library/WebServer/Documents/WebObjects///YourApp//.woa/Contents/WebServerResources##) to be served directly by Apache. This provides the optimal performance scenario, as Apache is specifically tuned for serving static content, and it does not make sense to send requests for large binary files through WebObjects if it is not necessary. 8 8 9 -== mod//expires// == 9 +== mod//expires // == 10 10 11 11 To get the most performance out of Apache, you should make sure that you have mod//expires enabled. mod//expires controls the caching headers that are applied to static resource requests. Depending on your installation, Apache may default to mod//expires disabled, which would cause your end-users' browser to re-request every resource on your site on every page, even if it's a common header graphic.// 12 12 ... ... @@ -44,13 +44,13 @@ 44 44 45 45 This tells Apache that when a request is made for a type image/gif, the requesting browser will be told not to request the image again for an hour (A3600 = 3600 seconds). 46 46 47 -== mod//rewrite// == 47 +== mod//rewrite // == 48 48 49 -Anyone who has used WebObjects has likely noticed that WebObjects URLs are long ## [[http://yoursite.com/cgi-bin/WebObjects/AppName.woa/wa/something]]##. It is a common request to make these URLs nicer for end-users who are used to just requesting ##[[http://yoursite.com]]##. Fortunately Apache provides an amazingly extensive module called "mod//rewrite" that allows you to rewrite the URL requests of your site based on a series of regular expressions and rules.//49 +Anyone who has used WebObjects has likely noticed that WebObjects URLs are long ##http:~/~/yoursite.com/cgi-bin/WebObjects/AppName.woa/wa/something##. It is a common request to make these URLs nicer for end-users who are used to just requesting ##http:~/~/yoursite.com##. Fortunately Apache provides an amazingly extensive module called "mod//rewrite" that allows you to rewrite the URL requests of your site based on a series of regular expressions and rules.// 50 50 51 -Aaron Rosenzweig has a very thorough article about [[using mod//rewrite with Apache//>>http://www.jewelryluv.com/fashion/pageWithName/ModRewrite /]].51 +Aaron Rosenzweig has a very thorough article about [[using mod//rewrite with Apache//>>http://www.jewelryluv.com/fashion/pageWithName/ModRewrite]]. 52 52 53 -=== mod//rew rite with mod//webobjects ===53 +=== mod//rewite with mod//webobjects === 54 54 55 55 I ran into a problem with mod//rewrite when using mod//WebObjects where mod//WebObjects had be loaded first or it just wouldn't work properly (it would work fine with cgi-bin adaptor).// 56 56 ... ... @@ -72,9 +72,9 @@ 72 72 73 73 {{/noformat}} 74 74 75 -There's still a load module in /System/Library/WebObjects/Adaptors/Apache/apache.conf, but you can just ignore it - it produces a warning about being loaded twice. 75 +There's still a load module in /System/Library/WebObjects/Adaptors/Apache/apache.conf, but you can just ignore it ~-~- it produces a warning about being loaded twice. 76 76 77 -=== Mike Schrag === 77 +=== Mike Schrag === 78 78 79 79 Here's an example mod//rewrite we use on one of our apps~:// 80 80 ... ... @@ -90,20 +90,14 @@ 90 90 91 91 {{/code}} 92 92 93 -The WOA produces URLs in the format ## [[http://site.com/page/HomePage?appNum=2]]##, which turns into ##[[http://site.com/cgi-bin/WebObjects/AppName.woa/2/viewPage?pageName=HomePage]]##.93 +The WOA produces URLs in the format ##http:~/~/site.com/page/HomePage?appNum=2##, which turns into ##http:~/~/site.com/cgi-bin/WebObjects/AppName.woa/2/viewPage?pageName=HomePage##. 94 94 95 - {{idvalue="Apache22Adapter"}}{{/id}}95 +== WebObjects Adaptor for Apache 2.2 == 96 96 97 -=== JeffSchmitz===97 +=== Travis Cripps === 98 98 99 - Thisone stumpedme fora coupledays,so thought I'daddit. Wastrying toadd mod//rewrite functionalityas describedabove,andthings wentwellonmydev machine byaddingtherewriterulesjustto the /etc/apache2/httpd.conffile. However,on thedeploymentmachine I alsohadto add themtothe/etc/apache2/sites/0000//any//.conf file. //99 +A number of people have expressed interest in using the WebObjects adaptor with Apache 2.2.x. I finally gotten a chance to sit down and work on it today. I'm writing to let you know that it's available in the Project Wonder CVS repository. 100 100 101 -== WebObjects Adaptor for Apache 2.2 == 102 - 103 -=== Travis Cripps === 104 - 105 -A number of people have expressed interest in using the WebObjects adaptor with Apache 2.2.x. I finally gotten a chance to sit down and work on it today. I'm writing to let you know that it's available in the Project Wonder CVS repository. (also there are [[precompiled binaries>>http://webobjects.mdimension.com/wonder/mod_WebObjects/]] for various OS available) 106 - 107 107 The necessary changes turned out to be mostly minor updates to change calls to outdated/deprecated functions. The biggest (and non-trivial) change was for SSL support. It's been re-written to use Apache's mod//ssl module.// 108 108 109 109 I've tested with MacOS X 10.4.7, Apache 2.2.2, with and without ssl support. It works in all of my tests. ... ... @@ -127,17 +127,6 @@ 127 127 128 128 And, of course, either change the name of the WebObjectsAlias setting from /cgi-bin/WebObjects to <foo>/WebObjects or comment out the ScriptAlias definition for the /cgi-bin/ directory. 129 129 130 -{{info title="Note"}} 131 - 132 -The default {{ScriptAlias}} directive in the 10.5 and 10.6 {{httpd.conf}} files is: 133 -\\ 134 -{noformat} 135 -ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1" 136 -{noformat} 137 -This prevents {{/cgi-bin/WebObjects}} from matching, so no change to {{WebObjectsAlias}} or {{ScriptAlias}} is necessary. 138 - 139 -{{/info}} 140 - 141 141 Other than these tips, it's pretty much the standard compilation and installation, and configuration. 142 142 143 143 1. Alter the make.config file in the Adaptors directory of the Wonder repository to reflect your apache installation setup. ... ... @@ -150,9 +150,9 @@ 150 150 1. Test. 151 151 1. Curse again. Change the httpd.conf file as necessary. 152 152 1. apachectl graceful. Go to 8 as necessary. 153 -1. Finally apachectl graceful 136 +1. Finally! apachectl graceful 154 154 155 -Enjoy your shiny new WO adaptor. : -)138 +Enjoy your shiny new WO adaptor. :) 156 156 157 157 * Note: if you are getting the error 158 158 ... ... @@ -166,3 +166,5 @@ 166 166 167 167 Add to the end of your make.config the following: 168 168 ##CC = gcc## 152 + 153 +Category:WebObjects