update. tomcat 4, etc..
[mir.git] / doc / INSTALL.mir
index 90fbdcc..8450cf0 100755 (executable)
@@ -1,15 +1,21 @@
+MIR INSTALLATION HOWTO
+----------------------------------------------------------------
+
 Here is a short installation-howto of Mir.
 
 
 prerequisites: 
 
-- tomcat 
-- apache with mod_jk.so 
+- tomcat 4.0.3 or above (3.3 works too as of 04.04.2002, but this could change)
+  tomcat is available from http://jakarta.apache.org
+- apache with mod_jk.so
 - postgres 7.1.x
 - ant (a java-based make) 
 - jaxp-1.1 (a SAX 2.0 compliant XML parser, comes with ant >= 1.4)
 - the JAI image framework (Java Advanced Imaging) versin 1.1.1 . get it from 
-  java.sun.com. ** NOTE: it must be placed in tomcat's common/lib directory **
+  java.sun.com. ** NOTE: because JAI uses a native acceration library (a .so)
+  it must be placed in tomcat's "lib" (i.e $CATALINA_HOME/lib) directory and
+  not under the default webapps/Mir/WEB-INF/lib directory **
 
 1. checkout the cvs
 
@@ -64,20 +70,27 @@ the permissions and owners correctly.
 7. Link in the webapps directory of tomcat to the install directory (the 
 directory is called "Mir" and is located in the same directory in which 
 you installed the "mir" directory). 
-       cd /usr/share/tomcat/webapps
+       cd /path/to/tomcat/webapps (tomcat-4.0.x/webapps)
        ln -s Mir-install-dir Mir
 
-8. Modify your tomcat startup script and add an LD_LIBRARY_PATH variable
-that points to the WEB-INF/lib directory of your Mir install dir. (called
-"Mir"). Add something like the following at the top of tomcat.sh (tomcat.sh
-is found in the "bin/" dir. under $TOMCAT_HOME):
-    LD_LIBRARY_PATH=/path/to/Mir-install-dir/WEB-INF/lib
+with tomcat 4.0.x, you could dynamically reload and stop the Mir webapp without
+restarting tomcat by using the "Manager App" with the following url:
+
+http://localhost:8080/manager/stop?path=/mir
+
+This is practical if you are running several installations of mir on one 
+tomcat or other webapps and can't afford to shutdown all of them.
+See the tomcat documentation to learn how to enable and use the manager app.
 
-An alternaive way to avoid this is to copy any dynamic library files 
-ending with ".so" in WEB-INF/lib to your jre/jdk lib directory (where the 
-other ".so" files live). Or, you can skip the whole thing and live without
-"native" acceleration for image manipulation
+8. Copy any dynamic library files ending with ".so" in the WEB-INF/lib to your
+jre/lib directory (where the other ".so" files live). Or, you can skip the
+whole thing and live without "native" acceleration for image manupulation.
 
+A painful alternative, would be to modify the tomcat startup script and add an
+LD_LIBRARY_PATH variable that points to the WEB-INF/lib directory of your Mir
+install dir. (called "Mir"). Add something like the following at the top of
+startup.sh (startup.sh is found in the "bin/" dir. under $TOMCAT_HOME):
+LD_LIBRARY_PATH=/path/to/Mir-install-dir/WEB-INF/lib
 
 9a. create a new database 
 The database name should be the same as in config.properties. Please look at
@@ -100,7 +113,7 @@ application call that you want to connect as a specific user. If you access
 the database from any other user's account, use the -U flag to connect to
 PostgreSQL as the database superuser ("postgres"):
 
-       createdb -U postgres Mir 
+       createdb -U postgres --encoding=unicode Mir 
 
 Please note that if you create the database from inside the psql application,
 the database name will likely be converted to lowercase letters.
@@ -141,8 +154,18 @@ in Mir/src nor in Mir/WEB-INF/classes nor in the directory tree you compiled
 Mir from) is world-readable. Else you wouldn't have to install a password,
 anyway.
 
+9e. Tweak mime-type extensions mappings in etc/web.xml file.
+
+*** Note the defaults should be o.k for most installations ***
+
+Add or remove any mime types you wish to support. This is used to figure
+out the mime-type when (broken browsers?) browsers don't send the mime-type
+in the content-type header field when uploading a media file. Note add the
+moment you still have to add these to the media_type SQL table as well which
+maps the mime-types to the correct mediaHandler class. See the comments in
+the MirMedia class in javadoc for more details.
 
-9e. Setup PostgreSQL so that all connections have to pass a password
+9f. Setup PostgreSQL so that all connections have to pass a password
 
 In /etc/postgresql/pg_hba.conf you should make sure that nobody can
 use the database without a password:
@@ -183,8 +206,8 @@ insert the following patch into /etc/apache/httpd.conf. Edit the directories
 to suit your needs.
 
 <IfModule mod_jk.c>
-JkWorkersFile /usr/share/tomcat/conf/workers.properties
-Include /usr/share/tomcat/conf/mod_jk.conf-auto
+JkWorkersFile /path/to/tomcat/conf/workers.properties
+Include /path/to/tomcat/conf/mod_jk.conf-auto
 </IfModule>
 
 Do not put any JkMount lines into your httpd.conf!
@@ -215,6 +238,19 @@ and the openposting-servlet via
 standard login is redaktion/indymedia
 
 
+SEARCHING
+
+The Mir code offers no internal search facilities, rather, the design
+expects the use of an external program to crawl and index the static
+site.  One (recommended) tool for doing this is htdig
+(http://htdig.org), which generates static databases of the site
+content and then accesses those databases through a very fast CGI
+program written in C.  In the scripts directory, a perl CGI script 
+which wraps calls to htsearch is provided (scripts/search.pl) which
+will allow searching based off of media type.  (This is possible
+because the standard templates will include META keywords like
+hasAudio, hasVideo, etc.)  
+
 
 TROUBLESHOOTING
 
@@ -224,3 +260,7 @@ You can give these a try if anything goes wrong:
   restarted.
 
 + Check file permissions and ownership. Try and run perms.sh.
+
+----------------------------------------------------------------
+
+2001, 2002 - the Mir coders