+MIR INSTALLATION HOWTO
+
+Last updated: $Date: 2002/07/08 16:20:32 $
+----------------------------------------------------------------
+
Here is a short installation-howto of Mir.
prerequisites:
-- tomcat
-- apache with mod_jk.so
-- postgres 7.1.x
+- tomcat 4.0.4 (4.0.3 and below have some bad bugs) or above (3.3 works too as
+ of 04.04.2002, but this could change)
+ tomcat is available from http://jakarta.apache.org/tomcat/
+- apache 1.3.x. with mod_jk.so. As far as I can tell the connector for 2.x is
+ still rather undocumented. http://httpd.apache.org
+- postgres 7.1.x or 7.2.x. http://www.postgresql.org
- 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 **
+- A good reading of Tomcat, Apache and Postgresql documentation if you are not
+ familiar with any of them. The documentation is available at:
+ http://jakarta.apache.org/tomcat/tomcat-4.0-doc/index.html,
+ http://httpd.apache.org/docs/ and http://www.postgresql.org respectively.
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 -d :pserver: cvsanon@brazil.indymedia.de:/var/cvs co mir
+ cvs -d :pserver:anonymous@mir.indymedia.org:/var/lib/cvs co mir
2. customize the config:
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
edit perms.sh
-5. copy the mir/templates-dist-directory to mir/templates
+4. copy the mir/templates-dist-directory to mir/templates
+
+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.
-6. compile
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).
- cd /usr/share/tomcat/webapps
- ln -s Mir-install-dir Mir
+you installed the "mir" directory). (Here and in the rest of this document,
+we assume you called the link "Mir", but this could be named anything.)
+ cd /path/to/tomcat/webapps (tomcat-4.0.x/webapps)
+ ln -s /path/to/Mir Mir
+
+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:
-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
+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 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
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".
for i in dbscripts/help*.sql ; do psql -Upostgres -f $i Mir ; done
for i in dbscripts/populate*.sql ; do psql -Upostgres -f $i Mir ; done
+8d. Grant the required permissions to the new user
+
+-- The following should be executed as the "postgres" DB user.
+-- Note that ID_FROM_PG_USER and DATABASENAME should be replace with the
+ appropriate field values from the 2 prior selects.
+-- set owner of datbase
+select * from pg_database;
+select * from pg_user;
+update pg_database set datdba=ID_FROM_PG_USER where datname=DATABASENAME
+
+-- find all tables to grant privs / select is just building sql
+-- to be exectued
-9d. Apply neccessary changes to config.properties
+select 'grant all on '||relname||' to "de_indy";'
+from pg_class
+where relname not like 'pg%'
+order by relname;
+
+8e. 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"
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.
-
-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:
-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.
+10. 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.
+
11. restart tomcat
12. configure mod_jk
+There are 2 ways to do this. auto-generation of mod_jk.conf or manula JKMount
+lines. (rumour has it that Tomcat 4.0.x doesn't support auto-generation, but
+this is unconfirmed).
+
+In both examples please note that the JkWorkersFile line only needs to appear
+once per Apache config.
+
+Also this assumes that your tomcat installation has it's ajp13 conenctor
+turned on. See tomcat's server.xml file and documentation for this. Chances
+are that it is turned on.
+
+Method a). The automatic mod_jk.conf method:
+
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!
If mod_jk.conf-auto doesn't get written or is 0 bytes in size, check your
system for file ownership/permissions problems.
+Method b). Manual JKMount lines
+
+insert the following patch into /etc/apache/httpd.conf. Edit the directories
+to suit your needs.
+
+<IfModule mod_jk.c>
+JkWorkersFile /path/to/tomcat/conf/workers.properties
+JkMount /Mir ajp13
+JkMount /Mir/* ajp13
+</IfModule>
+
13. configure apache
* enable shtml includes:
- add LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
- make sure your directory contains "Options Includes"
-
+* Determine if you need to modify any apache mime-mappings
+ - The web-server host must recognize the .m3u, .pls and other file extensions
+ and send the proper "audio/x-mpegurl" and "audio/x-scpls" mime-types
+ respectively. If the web server is apache, it's easy, just
+ add:
+
+ audio/x-mpegurl m3u
+ audio/x-scpl pls
+
+ to the file pointed to by the "TypesConfig" command in your apache config
+ file. Or add and equivalent AddType command to your httpd.conf. Of course
+ this assumes that the mod_mime is loaded.
that's it :)
now the admin-application is accesable via:
- http://host/Mir
+ http://host/Mir/servlet/Mir
and the openposting-servlet via
- http://host/OpenMir
+ http://host/Mir/servlet/OpenMir
-standard login is redaktion/indymedia
+standard login is admin/indymedia. See the webdb_users SQL table to change/add
+users or passwords.
SEARCHING
because the standard templates will include META keywords like
hasAudio, hasVideo, etc.)
+UPGRADING
+
+see the UPGRADING.mir file.
TROUBLESHOOTING
restarted.
+ Check file permissions and ownership. Try and run perms.sh.
+
+----------------------------------------------------------------
+
+$Date: 2002/07/08 16:20:32 $ - the Mir coders