revert to iso-8859-1
[mir.git] / doc / INSTALL.mir
index 25b6545..f359b5e 100755 (executable)
@@ -1,26 +1,32 @@
+MIR INSTALLATION HOWTO
+----------------------------------------------------------------
+
 Here is a short installation-howto of Mir.
 
 
 prerequisites: 
 
 Here is a short installation-howto of Mir.
 
 
 prerequisites: 
 
-- tomcat 
-- apache with mod_jk.so 
-- postgres 7.1.x
+- 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 or 7.2.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 
 - 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 $TOMCAT_HOME/lib) directory and
+  not under the default webapps/Mir/WEB-INF/lib directory **
 
 1. checkout the cvs
 
 CVS LOGIN:
 
 
 1. checkout the cvs
 
 CVS LOGIN:
 
-       cvs -d :pserver: cvsanon@brazil.indymedia.de:/var/cvs login 
-       password: cvs 
+  cvs -d :pserver:anonymous@mir.indymedia.org:/var/lib/cvs login
+       password: anonymous
 
 CVS CHECKOUT:
 
 
 CVS CHECKOUT:
 
-       cvs -d :pserver: cvsanon@brazil.indymedia.de:/var/cvs co mir 
+       cvs -d :pserver:anonymous@mir.indymedia.org:/var/lib/cvsco mir 
 
 
 2. customize the config: 
 
 
 2. customize the config: 
@@ -31,12 +37,7 @@ CVS CHECKOUT:
 now customize config.properties for your needs.
 
 
 now customize config.properties for your needs.
 
 
-3. configure the build.xml file if neccessary
-    cd ..
-    cp build.xml-new build.xml
-
-
-4. configure the perms.sh file if neccessary -- IMPORTANT! READ THIS!
+3. configure the perms.sh file if neccessary -- IMPORTANT! READ THIS!
 We provide a script that sets all files' and direcories' permissions to
 a quite reasonable state. This script gets automagically called by
 ant after compilationl. The most important thing you have to do after
 We provide a script that sets all files' and direcories' permissions to
 a quite reasonable state. This script gets automagically called by
 ant after compilationl. The most important thing you have to do after
@@ -51,35 +52,41 @@ Now, change the install directory and group in perms.sh
        edit perms.sh 
 
 
        edit perms.sh 
 
 
-5. copy the mir/templates-dist-directory to mir/templates
+4. copy the mir/templates-dist-directory to mir/templates
 
 
 
 
-6. compile 
+5. compile. For this step, you have to make sure that the TOMCAT_HOME
+environment variable is set to the root of your tomcat installation.
+The build.xml compile target will give up if this is not set.
+
 Do this as root so the permissions script is able to set
 the permissions and owners correctly.
 
     ant 
 
 
 Do this as root so the permissions script is able to set
 the permissions and owners correctly.
 
     ant 
 
 
-7. Link in the webapps directory of tomcat to the install directory (the 
+6. 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). 
 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
 
        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
 
 
-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
+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.
 
 
+7. Copy any dynamic library files ending with ".so" (so far only the JAI native
+acceleration library found in the JAI package tarball or zip from sun) to your
+$JAVA_HOME/jre/lib/i386 directory (where the other ".so" files live). Or, you
+can skip the whole thing and live without "native" acceleration for image
+manupulation.
 
 
-9a. create a new database 
+8a. create a new database 
 The database name should be the same as in config.properties. Please look at
 the section "Database.*" to look up the names or change them to your needs. 
 
 The database name should be the same as in config.properties. Please look at
 the section "Database.*" to look up the names or change them to your needs. 
 
@@ -106,7 +113,7 @@ Please note that if you create the database from inside the psql application,
 the database name will likely be converted to lowercase letters.
 
 
 the database name will likely be converted to lowercase letters.
 
 
-9b. create an unprivileged database user for Mir
+8b. create an unprivileged database user for Mir
 First, connect to the database as the database's superuser. 
 
        psql -U postgres Mir
 First, connect to the database as the database's superuser. 
 
        psql -U postgres Mir
@@ -120,7 +127,7 @@ this: "8ncx4un".
     CREATE USER Mir WITH PASSWORD 'joshua' NOCREATEDB NOCREATEUSER;
 
 
     CREATE USER Mir WITH PASSWORD 'joshua' NOCREATEDB NOCREATEUSER;
 
 
-9c. create base table
+8c. create base table
 Please note that we use the superuser "postgres" to connect to the "Mir"
 database, /not/ the user "mir". 
 
 Please note that we use the superuser "postgres" to connect to the "Mir"
 database, /not/ the user "mir". 
 
@@ -129,7 +136,7 @@ database, /not/ the user "mir".
     for i in dbscripts/populate*.sql ; do psql -Upostgres -f $i Mir ; done
 
 
     for i in dbscripts/populate*.sql ; do psql -Upostgres -f $i Mir ; done
 
 
-9d. Apply neccessary changes to config.properties
+8d. Apply neccessary changes to config.properties
 
 Please open config.properties and look for the lines that begin with
 "Database.". The interesting properties are "Username", "Password", "Host"
 
 Please open config.properties and look for the lines that begin with
 "Database.". The interesting properties are "Username", "Password", "Host"
@@ -141,7 +148,7 @@ 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.
 
 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.
+8e. Tweak mime-type extensions mappings in etc/web.xml file.
 
 *** Note the defaults should be o.k for most installations ***
 
 
 *** Note the defaults should be o.k for most installations ***
 
@@ -152,7 +159,7 @@ 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.
 
 maps the mime-types to the correct mediaHandler class. See the comments in
 the MirMedia class in javadoc for more details.
 
-9f. Setup PostgreSQL so that all connections have to pass a password
+8f. 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:
 
 In /etc/postgresql/pg_hba.conf you should make sure that nobody can
 use the database without a password:
@@ -179,22 +186,22 @@ database takeover harder. Rememer: Security is a process.
 
 
 
 
 
 
-10. Add the dupe prevention trigger to the database:
+9. Add the dupe prevention trigger to the database:
        cd dbscripts/dupetrigger
        
        There, read INSTALL and follow the instructions.
        
 
        cd dbscripts/dupetrigger
        
        There, read INSTALL and follow the instructions.
        
 
-11. restart tomcat 
+10. restart tomcat 
 
 
-12. configure mod_jk 
+11. configure mod_jk 
 
 insert the following patch into /etc/apache/httpd.conf. Edit the directories
 to suit your needs.
 
 <IfModule mod_jk.c>
 
 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!
 </IfModule>
 
 Do not put any JkMount lines into your httpd.conf!
@@ -203,7 +210,7 @@ If mod_jk.conf-auto doesn't get written or is 0 bytes in size, check your
 system for file ownership/permissions problems.
 
 
 system for file ownership/permissions problems.
 
 
-13. configure apache
+12. configure apache
 
 edit http.conf:
 * set the document root to the same directory as in the mir config file
 
 edit http.conf:
 * set the document root to the same directory as in the mir config file
@@ -225,6 +232,19 @@ and the openposting-servlet via
 standard login is redaktion/indymedia
 
 
 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
 
 
 TROUBLESHOOTING
 
@@ -234,3 +254,7 @@ You can give these a try if anything goes wrong:
   restarted.
 
 + Check file permissions and ownership. Try and run perms.sh.
   restarted.
 
 + Check file permissions and ownership. Try and run perms.sh.
+
+----------------------------------------------------------------
+
+2001, 2002 - the Mir coders