Install Alfresco Community Edition

, , Comments Off on Install Alfresco Community Edition

Overview

These are the instructions I arrived at for install Alfresco Community Edition 4.0b under JBoss. Much of this is taken from the Alfreso Wiki albeit documention is soemwhat scattered and hard to find. Feel free to comment and good luck!

Create the Alfresco MySQL database and Alfresco user.

mysql -u root -padmin

cut and past the following lines or run as a script (not noted here)

create database alfresco default character set utf8 collate utf8_bin;
grant all on alfresco.* to ‘alfresco’@’localhost’ identified by ‘alfresco’ with grant option;
grant all on alfresco.* to ‘alfresco’@’localhost.localdomain’ identified by ‘alfresco’ with grant option;

Get a Copy of Alfresco and JBoss

JBoss
mkdir /opt/community
cd /opt/community
wget http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA.zip
unzip jboss-5.1.0.GA.zip

Alfresco
mkdir alf
cd alf
unzip alfresco-community-4.0.b.zip
wget http://dl.alfresco.com/release/community/build-3835/alfresco-community-4.0.b.zip

You should now see the following:

[root@ericktwo community]# pwd
/opt/community
[root@ericktwo community]# ls
alf jboss-5.1.0.GA
[root@ericktwo community]#

Move Alfresco “Extension” Diretory to JBoss

Note that the Alfresco Wiki says to create an alfresco directory under (in this example) /opt/community/jboss-5.1.0.GA/server/default/conf/alfresco though I put in the directory shown and everything works.

mv /opt/community/alf/web-server/shared/classes/alfresco/extension /opt/community/jboss-5.1.0.GA/server/default/deploy/extension

Move and Explode “WAR” files under JBoss

Note that you’re renaming “.war” to “.jar”

mv /opt/community/alf/web-server/webapps/alfresco.war
/opt/community/jjboss-5.1.0.GA/server/default/deploy/alfresco.jar

mv /opt/community/alf/web-server/webapps/share.war /opt/community/jboss-5.1.0.GA/server/default/deploy/share.jar

Make required directories

mkdir alfresco.war share.war
cd /opt/community/jboss-5.1.0.GA/server/default/deploy

Move the “.jar” files to the associated “.war” directories.

mv alfresco.jar alfresco.war
mv share.jar share.war

Change to the appropriate directories and explode the “.jar” files.

cd alfresco.war
jar -xvf alfresco.jar
cd ..
cd share.war
jar -xvf share.jar

Reduce Logging

Note that I did not modify this as directed in the Alfresco Wiki.

<root>
     <priority value="INFO" />
     <appender-ref ref="CONSOLE"/>
     <appender-ref ref="FILE"/>
  </root>

JDBC Connector

Download the appropriate MySQL Connector/J from the MySQL website: http://dev.mysql.com/downloads/connector/j/ and place in the following JBoss directory:

/opt/community/jboss-5.1.0.GA/server/default/lib

MySQL Connection Pooling

Create connection pooling by creating the file, /opt/community/jboss-5.1.0.GA/server/default/deploy/mysql-ds.xml.

Note change the name of the MySQL database, user name and passowrd to match your environment.

<local-tx-datasource>
   <jndi-name>alfresco-datasource</jndi-name>
   <connection-url>jdbc:mysql://localhost:3306/alfresco</connection-url>
   <driver-class>org.gjt.mm.mysql.Driver</driver-class>
   <user-name>alfresco</user-name>
   <password>alfresco</password>
   <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
   <metadata>
   <type-mapping>mySQL</type-mapping>
   </metadata>
 </local-tx-datasource>

UTF8 Support

Edit the following file, /opt/beta/jboss-5.1.0.GA/server/default/deploy/jbossweb.sar/server.xml. You’ll see two sections (port 8080 and port 8009) that you’ll need to append, “URIEncoding=”UTF-8”” to as shown in bold.

Note that the Alfresco Wiki also says to modify, /opt/beta/jboss-5.1.0.GA/server/all/deploy/jbossweb.sar/server.xml as well though I did not do this for my install and everything appears to work.

<!-- A HTTP/1.1 Connector on port 8080 -->
   <Connector protocol="HTTP/1.1" port="8080" URIEncoding="UTF-8" address="${jboss.bind.address}"
            connectionTimeout="20000" redirectPort="8443" />
<!-- A AJP 1.3 Connector on port 8009 -->
   <Connector protocol="AJP/1.3" port="8009" URIEncoding="UTF-8" address="${jboss.bind.address}"
      redirectPort="8443" />

Hibernate

Edit the file,
/opt/community/jboss-5.1.0.GA/server/default/deployers/ejb3.deployer/META-INF/jpa-deployers-jboss-beans.xml

<entry>
<key>hibernate.bytecode.provider</key>
<value>cglib</value>
</entry>

Create Alfresco Global Properties

Create the file, /opt/community/jboss-5.1.0.GA/server/default/conf/alfresco-global.properties as shown below. Ensure that the “dir.root” directory and “dir.contentstore” directories exist. You can refer to the previous section, “MySQL Connection Pooling” above as the database name, database user and password should match the file, mysql-ds.xml.

Refer to the following website in obtaining Open Office, http://download.openoffice.org/other.html.

dir.root=/opt/alfresco/alf_data
dir.indexes=${dir.root}/lucene-indexes
dir.contentstore=/opt/alf_file_share/contentstore
dir.contentstore.deleted=/opt/alf_file_share/contentstore.deleted
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.pool.initial=10
db.pool.max=100
ooo.exe=/opt/openoffice.org3
ooo.enabled=false
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://localhost:3306/${db.name}
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
index.recovery.mode=FULL
mail.host=smtp.lifeway.org
mail.port=25
cifs.enabled=true
cifs.serverName=alfresco-dev
cifs.ipv6.enabled=false
img.root=/usr/local/ImageMagick-6.6.9-10
swf.exe=/usr/local/swftools-0.9.0/bin

Edit Startup Options

Edit the file /opt/community/jboss-5.1.0.GA/bin/run.conf. to include JMX monitoring and automatic discovery of Alfresco by the Hyperic plugin. Add the section shown in bold to the “JAVA_OPTS” parameter.

JAVA_OPTS="-Xms256m -Xmx1024m -XX:MaxPermSize=512m -Dorg.jboss.resolver.warning=true -Dcom.sun.management.jmxremote -Dalfresco.home=. -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

Also ensure that the following minimum values shown below as related to the Java heap. Modiy the “JAVA_OPTS” parameter shown above if requrired.

-Xms128m -Xmx512m -XX:MaxPermSize=128m

Edit the Filter Packages

Edit the file, /opt/community/jboss-5.1.0.GA/server/default/deployers/jbossweb.deployer/META-INF/war-deployers-jboss-beans.xml and replace the “WarClassLoaderDeployer” section with the following. This will avoid collisions between JVM bootstrap classes and those embedded in the “war”.

<bean name="WarClassLoaderDeployer" class="org.jboss.web.tomcat.service.deployers.WarClassLoaderDeployer">
    <property name="relativeOrder">-1</property>
    <property name="filteredPackages">javax.activation,javax.servlet,javax.servlet.jsp,javax.servlet.jsp.jstl,javax.servlet.jsp.jstl.core,javax.servlet.jsp.jstl.fmt,javax.servlet.jsp.jstl.sql,javax.servlet.jsp.jstl.tlv,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.messaging,javax.xml.namespace,javax.xml.parsers,javax.xml.rpc,javax.xml.rpc.encoding,javax.xml.rpc.handler,javax.xml.rpc.handler.soap,javax.xml.rpc.holders,javax.xml.rpc.server,javax.xml.rpc.soap,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.ws.wsaddressing,javax.xml.xpath,org.apache.commons.logging,org.apache.commons.logging.impl,org.apache.xerces,org.apache.xerces.dom,org.apache.xerces.dom.events,org.apache.xerces.dom3,org.apache.xerces.dom3.as,org.apache.xerces.impl,org.apache.xerces.impl.dtd,org.apache.xerces.impl.dtd.models,org.apache.xerces.impl.dv,org.apache.xerces.impl.dv.dtd,org.apache.xerces.impl.dv.util,org.apache.xerces.impl.dv.xs,org.apache.xerces.impl.io,org.apache.xerces.impl.msg,org.apache.xerces.impl.validation,org.apache.xerces.impl.xpath,org.apache.xerces.impl.xpath.regex,org.apache.xerces.impl.xs,org.apache.xerces.impl.xs.identity,org.apache.xerces.impl.xs.models,org.apache.xerces.impl.xs.opti,org.apache.xerces.impl.xs.traversers,org.apache.xerces.impl.xs.util,org.apache.xerces.jaxp,org.apache.xerces.jaxp.datatype,org.apache.xerces.jaxp.validation,org.apache.xerces.parsers,org.apache.xerces.util,org.apache.xerces.xinclude,org.apache.xerces.xni,org.apache.xerces.xni.grammars,org.apache.xerces.xni.parser,org.apache.xerces.xpointer,org.apache.xerces.xs,org.apache.xerces.xs.datatypes,org.apache.xml,org.apache.xml.resolver,org.apache.xml.resolver.apps,org.apache.xml.resolver.etc,org.apache.xml.resolver.etc.catalog.dtd,org.apache.xml.resolver.etc.catalog.rng,org.apache.xml.resolver.etc.catalog.xsd,org.apache.xml.resolver.etc.xcatalog.dtd,org.apache.xml.resolver.helpers,org.apache.xml.resolver.readers,org.apache.xml.resolver.tools,org.apache.xml.security,org.apache.xml.security.algorithms,org.apache.xml.security.algorithms.implementations,org.apache.xml.security.c14n,org.apache.xml.security.c14n.helper,org.apache.xml.security.c14n.implementations,org.apache.xml.security.encryption,org.apache.xml.security.exceptions,org.apache.xml.security.keys,org.apache.xml.security.keys.content,org.apache.xml.security.keys.content.keyvalues,org.apache.xml.security.keys.content.x509,org.apache.xml.security.keys.keyresolver,org.apache.xml.security.keys.keyresolver.implementations,org.apache.xml.security.keys.storage,org.apache.xml.security.keys.storage.implementations,org.apache.xml.security.resource,org.apache.xml.security.resource.schema,org.apache.xml.security.signature,org.apache.xml.security.transforms,org.apache.xml.security.transforms.implementations,org.apache.xml.security.transforms.params,org.apache.xml.security.utils,org.apache.xml.security.utils.resolver,org.apache.xml.security.utils.resolver.implementations,org.apache.xml.serialize,org.apache.xmlcommons,org.xml,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers,org.w3c.css,org.w3c.css.sac,org.w3c.css.sac.helpers,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.smil,org.w3c.dom.stylesheets,org.w3c.dom.svg,org.w3c.dom.traversal,org.w3c.dom.views,org.w3c.dom.xpath</property>