| Installing mod_webapp and using it with Apache 1.3 |
| -------------------------------------------------- |
| |
| Notice |
| ------ |
| |
| NO, IT DOES NOT RUN WITH WINDOWS (your images don't appear and the |
| whole thing hangs?) AND SINCE I DON'T USE NEITHER POSSESS A MICROSOFT |
| WINDOWS BASED MACHINE, THERE ARE NO CURRENT PLANS ON MAKING IT WORK |
| OVER THERE (from my side). |
| |
| Installing |
| ---------- |
| |
| Once you have successfully built the mod_webapp DSO as described in the |
| README.txt file coming with the sources, installing the module is pretty |
| easy. |
| |
| First of all, copy the resulting mod_webapp.so file you will find in this |
| directory (or in the apache-1.3 directory if you're building from sources) |
| into your Apache 1.3 "libexec" directory (that directory where all DSO modules |
| for Apache reside). |
| |
| If you're using Apache 1.3 for Windows, your modules directory will be called |
| "modules" (there's a "libexec directory, but it contains other stuff). Please |
| take care when loading the module. For Windows your "LoadModule" directive |
| looks like: |
| |
| LoadModule webapp_module modules/mod_webapp.so |
| |
| Another note for Windows: copy also the "libapr.dll" file with the module, or |
| your Apache 1.3 web server will refuse to start reporting that the WebApp |
| module cannot be loaded. |
| |
| Once you have done that, edit your "httpd.conf" configuration file and |
| add a few lines to load that module at startup (Windows users, read above, |
| you have to "replace" libexec with "modules" - I'm paranoid, sorry): |
| |
| LoadModule webapp_module libexec/mod_webapp.so |
| and |
| AddModule mod_webapp.c |
| |
| NOTE: It was reported that sometimes Apache under windows doesn't like the |
| AddModule line in the configuration file. Please, if you can't start your |
| Apache service, try commenting out that line in your httpd.conf file. |
| |
| Looking at the default "httpd.conf" file coming with Apache 1.3, I usually |
| add the "LoadModule ..." line at the end of all pre-written and commented out |
| "LoadModule" directives, and my "AddModule ..." directive at the end of all |
| commented out "AddModule" directives. My "httpd.conf" file looks something |
| like this: |
| |
| [...] |
| #LoadModule unique_id_module libexec/mod_unique_id.so |
| #LoadModule dav_module libexec/libdav.so |
| #LoadModule ssl_module libexec/libssl.so |
| LoadModule webapp_module libexec/mod_webapp.so |
| [...] |
| ClearModuleList |
| [...] |
| #AddModule mod_unique_id.c |
| #AddModule mod_dav.c |
| #AddModule mod_ssl.c |
| AddModule mod_webapp.c |
| [...] |
| |
| Once you've edited your "httpd.conf" in such fashion, it's better to check |
| if everything still works within the Apache core. You can test your newly |
| constructed configuration by issuing: |
| |
| apachectl configtest |
| |
| The apachectl script comes with your Apache 1.3 distribution. It usually |
| lies in /usr/local/apache/bin, but depending on _YOUR_ apache distribution, |
| that might change. |
| |
| Once you verified that "apachectl" reports "Syntax OK" (meaning that all |
| modules have been successfully loaded and started), you can start adding your |
| web application connections and context into the Apache configurations. |
| Back to the "httpd.conf" file, you need to add something like: |
| |
| WebAppConnection conn warp localhost:8008 |
| WebAppDeploy examples conn /examples |
| |
| In this example, I'm instructing the WebApp connector to connect to the |
| servlet container waiting for requests on the current "localhost" host and |
| bound to port 8008 (note, this port is the one you specified in your |
| "server.xml" file for the "org.apache.catalina.connector.warp.WarpConnector" |
| connector, not your HTTP one). |
| |
| A brief detailed description of the above-mentioned directives is: |
| |
| WebAppConnection [connection name] [provider] [host:port] |
| |
| [connection name] |
| A unique name for the connection to be created between Apache |
| and Tomcat. |
| |
| [provider] |
| The name of the provider used to connect to the servlet container. |
| Currently only the "warp" provider is available. |
| |
| [host:port] |
| The host name and port number to which the WARP connection must |
| attempt to connect. The port is the one you specified in your |
| "server.xml" file for the "...WarpConnector" connector, not your |
| HTTP one. |
| |
| WebAppDeploy [application name] [connection name] [url path] |
| |
| [application name] |
| The application name as present in your "webapps" directory in |
| Tomcat. For example, if you want to deploy a WAR-based web |
| application, your application name will look something like |
| "myApplication.war". |
| |
| [connection name] |
| The name of a previously declared WebAppConnection directive. |
| |
| [url path] |
| The URL path where this application will be deployed. |
| |
| The "WebAppDeploy" directive is scoped around the current host, meaning that |
| if you insert it into a "<VirtualHost ...>" tag, your application will be |
| deployed only for that particular virtual host. To deploy the same application |
| on several virtual hosts, you will have to declare it once inside each |
| "<VirtualHost ...>" tag. This, in accordance with the Servlet specification, |
| will create a new instance of the web-application per virtual host. |
| |
| Another directive is available for the WebApp connector. The "WebAppInfo" |
| directive will allow you to see the current status of all configured |
| connections and deployed applications. To use it, simply add something like: |
| |
| WebAppInfo /webapp-info |
| |
| You can then access the information page hitting your web server for the |
| following URL: |
| |
| http://server.name:port/webapp-info/ |
| |
| Have fun... |
| |
| Pier <pier@betaversion.org> |