cancel
Showing results for 
Search instead for 
Did you mean: 
resplin
Elite Collaborator
Elite Collaborator

Obsolete Pages{{Obsolete}}

The official documentation is at: http://docs.alfresco.com



This is a step by step how-to for installing Alfresco 3.2 on Solaris 10.  It uses JBoss because I found it easier than the Linux install script.  So just follow the steps and you should be up and running as fast as you can download the required software.

If your internet connection is slow (Expect to download about 800MB), you should run the download commands inside a 'screen' session so that the downloads will continue even if your ssh session disconnects.


Table of Contents


Security


Solaris do not allow you to log in as root by default.  For this howto you must perform the steps as root, to become root run the following:

su

Now create a user for alfresco and jboss to run on: (All the autostart scripts will be run as this user.)

useradd alfresco
passwd alfresco

As with any service account, choose a secure password that you can't remember and put it in a sealed envelope in a safe after you are done with the installation.


Blastwave pkgutil


Blastwave pkgutil allow you to securely install software to your server.

pkgutil will connect to the internet to download software, if you need a proxy for this, configure it in the .wgetrc file.



vi ~/.wgetrc

progress=dot:mega
use_proxy=on
ftp_proxy=http://proxy.abc.com:8080
http_proxy=http://proxy.abc.com:8080
proxy-user=XXX
proxy-passwd=XXXX

Install the pkgutil package manager

pkgadd -d http://blastwave.network.com/csw/pkgutil_`/sbin/uname -p`.pkg 

This was step 1, follow the other 3 steps from the blastwave howto.

http://www.blastwave.org/howto.html

JBoss


All the scripts in this howto assume that JBoss is installed to /opt/jboss.


Download and unzip JBoss


JBoss 4 is used because JBoss 5 support is still experimental. Download the latest JBoss 4 by editing the url below:

cd ~
/opt/csw/bin/wget http://sourceforge.net/projects/jboss/files/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA-jdk6.zip/download
unzip jboss-4.2.3.GA-jdk6.zip -d /opt/jboss
mkdir /opt/jboss/log

Create JBoss startup script


This may be replaced by Solaris SMF services...

vi /etc/init.d/jboss

put the following in there.



#! /bin/sh

start(){
        FQDN=`/usr/sbin/check-hostname|cut -d' ' -f7`
        echo `date` ' : Starting jboss with FQDN:$FQDN' >> /opt/jboss/log/jboss-init.log
cd /opt/jboss/server/default/
        /opt/jboss/bin/run.sh -c default -b $FQDN -D jboss.bind.address=0.0.0.0 > /opt/jboss/log/jboss-console.log 2> /opt/jboss/log/jboss-console.log &
}

stop(){
        echo `date` ' : Stopping jboss' >> /opt/jboss/log/jboss-init.log
        /opt/jboss/bin/shutdown.sh -S &
}

restart(){
        stop
# give stuff some time to stop before we restart
        sleep 60
# protect against any services that can't stop before we restart (warning this kills all Java instances running as 'jboss' user)
        su -l jboss -c 'killall java'
# if the 'su -l ...' command fails try:
        #   sudo -u jboss killall java
        start
}

case '$1' in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  *)
        echo 'Usage: jboss {start|stop|restart}'
        exit 1
esac
exit 0

Create a symlink to enable starting this script

ln -s /etc/init.d/jboss /etc/rc3.d/S85jboss

JBoss persistence provider


vi /opt/jboss/server/default/deploy/ejb3.deployer/META-INF/persistence.properties 

Change the line:

hibernate.bytecode.provider=javassist

to:

hibernate.bytecode.provider=cglib

JBoss JAVA_OPTS memory settings


vi /opt/jboss/bin/run.conf

Ensure JAVA_OPTS include the following

-Xms128m -Xmx512m -XX:MaxPermSize=128m

Alfresco


Download the latest Alfresco 3.2 WAR bundle and unzip the WAR files to /opt/jboss/server/default/deploy/ and the config files to /opt/jboss/server/default/conf/

cd ~
/opt/csw/bin/wget http://dl.alfresco.com/release/community/build-2039/alfresco-community-war-3.2.zip
unzip alfresco-community-war-3.2.zip -d ~/tmpalfresco
mv ~/tmpalfresco/*.war /opt/jboss/server/default/deploy/
rm -r /opt/jboss/server/default/conf/alfresco
mv ~/tmpalfresco /opt/jboss/server/default/conf/alfresco
mv /opt/jboss/server/default/conf/alfresco/extensions/extension/alfresco-global.properties /opt/jboss/server/default/conf/


Alfresco paths


vi /opt/jboss/server/default/conf/alfresco-global.properties 

Set the following

dir.root=/opt/jboss/server/default/alf_data
img.root=/opt/jboss/server/default/conf/alfresco/commands/ImageMagick
swf.exe=/opt/jboss/server/default/conf/alfresco/commands/bin

Sharepoint extensions


To use Sharepoint extensions you must install the VTI sharepoint extensions into the war file.
This script will download the sharepoint extension and the alfresco module management tool and then use the tool to install the extension into the war file.

cd ~
/opt/csw/bin/wget http://dl.alfresco.com/release/community/build-2384/vti-module.amp
/opt/csw/bin/wget http://dl.alfresco.com/release/community/build-2384/alfresco-mmt-3.2r.jar
java -jar alfresco-mmt-3.2r.jar install vti-module.amp /opt/jboss/server/default/deploy/alfresco.war -verbose


Alfresco JDBC connection


Create a datasource file which defines the connection details for your MySQL database and edit it with the appropriate parameters for your database.

cp /opt/jboss/docs/examples/jca/mysql-ds.xml /opt/jboss/server/default/deploy/
vi /opt/jboss/server/default/deploy/mysql-ds.xml

Change the jndi-name (I do not know if this is really needed because mine works without it)

<jndi-name>alfresco-datasource</jndi-name>

Change the connection url

<connection-url>jdbc:mysql://localhost:3306/alfresco</connection-url>

MySQL


MySQL JDBC driver


Download and install the MySQL JDBC driver.
In a browser open the following link then register or click the bypass registration link at the bottom of the screen to get to the list of mirrors.

http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.10.zip/from/pick

Copy a url from the mirror list provided and make the XXXX to be the same as the mirror URL.

/opt/csw/bin/wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.10.zip/from/XXXX
unzip mysql-connector-java-5.1.10.zip
mv ./mysql-connector-java-5.1.10/mysql-connector-java-5.1.10-bin.jar /opt/jboss/server/default/lib
rm -R ./mysql-connector-java-5.1.10/

MySQL Install


/opt/csw/bin/pkgutil -i CSWmysql5

or if you want phpmyadmin with apache then use:

/opt/csw/bin/pkgutil -i phpmyadmin

MySQL Config


Create the config file /opt/csw/mysql5/my.cnf, as follows:

cp /opt/csw/mysql5/share/mysql/my-medium.cnf /opt/csw/mysql5/my.cnf

From: http://www.sun.com/bigadmin/features/articles/samp_setup.jsp


Create DB


/opt/csw/mysql5/bin/mysql 


This makes the database accessible from anywhere with an easy password, don't do it in production!



/opt/csw/mysql5/bin/mysql

drop user 'alfresco'@'localhost';
create user 'alfresco'@'localhost' identified by 'alfresco';
grant all privileges on *.* to alfresco @'localhost' with grant option;

drop user 'alfresco'@'%';
create user 'alfresco'@'%' identified by 'alfresco';
grant all privileges on *.* to alfresco @'%' with grant option;

Other useful MySQL commands:



show databases;
show grants;

OpenOffice


Install OpenOffice

/opt/csw/bin/pkgutil -i openofficeengb

Create OpenOffice startup script


vi /etc/init.d/openoffice

put the following in there.



#!/bin/sh
# Boot open office so that Alfresco can do transforms.

SOFFICE_PATH='/opt/csw/OpenOffice.org/program'
SOFFICE_ARGS1='-nofirststartwizard -nologo -headless '
SOFFICE_ARGS2='-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager'
SOFFICE_PIDFILE=/var/run/soffice.bin.pid

start_soffice() {
       echo `date` ' : Starting OpenOffice' >> /opt/jboss/log/openoffice-init.log
       $SOFFICE_PATH/soffice $SOFFICE_ARGS1 $SOFFICE_ARGS2 > /opt/jboss/log/openoffice-console.log 2> /opt/jboss/log/openoffice-console.log &
       echo
}
start() {
       start_soffice
}
stop() {
       echo `date` ' : Stopping OpenOffice' >> /opt/jboss/log/openoffice-init.log
       echo -n $'Stopping OpenOffice ... I haven't figured out how to yet...'
       echo
}
case '$1' in
       start)
               start
               ;;
       stop)
               stop
               ;;
       restart)
               stop
               start
               ;;
       *)
               echo $'Usage: $0 {start|stop|restart}'
esac

Create a symlink to auto start this script

ln -s /etc/init.d/openoffice /etc/rc3.d/S60openoffice

ImageMagick


Download ImageMagick and install.

cd ~
/opt/csw/bin/wget http://www.imagemagick.org/download/binaries/ImageMagick-sparc-sun-solaris2.10.tar.gz
file=ImageMagick-sparc-sun-solaris2.10.tar.gz
gzcat $file | tar xfv -
rm -r /opt/jboss/server/default/conf/alfresco/commands/ImageMagick
mv ImageMagick-6.4.4 /opt/jboss/server/default/conf/alfresco/commands/ImageMagick

pdf2swf


TODO: Find a binary for Solaris and install it.




DONE! Test It


The following links use the default ports, if you changed the ports, then use those instead.


Start Alfresco Manually


/etc/init.d/openoffice start
/etc/init.d/jboss start

Default Login Credentials


user: admin
pass: admin

Share Website


http://HOSTNAME:8080/share

Web Interface


http://HOSTNAME:8080/alfresco/

SMB Interface


\\HOST_IP_ADDRESS\alfresco

FTP Access


ftp HOST_IP_ADDRESS

WebDAV access


Try this in a browser for read only access or through a Windows mapped drive for read/write access.

http://HOST_IP_ADDRESS:8080/alfresco/webdav

Management


Logging


vi /opt/jboss/server/default/conf/jboss-log4j.xml

find the <root> section and delete the CONSOLE item and add or edit the following item

<priority value='INFO' />

Monitor the logs


Run these each in it's own screen session, then you can connect at any time to see the output.

tail -f /opt/jboss/log/jboss-console.log
tail -f /opt/jboss/log/openoffice-console.log
tail -f /opt/jboss/server/default/log/server.log
tail -f /opt/jboss/server/default/alfresco.log

Cleanup Logs


This script is useful for debug purposes when you want to remove old log files and start from a clean slate.

rm -i /opt/jboss/log/* /opt/jboss/server/default/log/* /opt/jboss/server/default/alfresco.log*

Delete Alfresco data!


WARNING: This will delete all Alfresco data! It can not be undone!!
Make sure Jboss and Alfresco is not running.

ps -eaf |grep jboss

Delete the alf_data folder.

rm -R /opt/jboss/server/default/alf_data

Delete the database. Remember to go back to the top of this howto and re-create the database, otherwise alfresco will not start up again.


/opt/csw/mysql5/bin/mysql
$ALF_HOME/tomcat/shared/classes/alfresco-global.properties


???

Alfresco Share NTLM


Edit $ALF_HOME/tomcat/webapps/share/WEB-INF/web.xml
Uncomment the 2 commented NTLM sections as described here: http://wiki.alfresco.com/wiki/3.0_Configuring_NTLM#Alfresco_Share_SSO_using_NTLM




CIFS File Server subsystem


Append to:


$ALF_HOME/tomcat/shared/classes/alfresco-global.properties


# CIFS File Server subsystem
cifs.localname=Server DNS name
cifs.domain=WORKGROUP

cifs.serverName=${localname}
cifs.urlfile.prefix=http://${localname}:8080/alfresco/
filesystem.name=Alfresco
cifs.enabled=true
cifs.bindto=0.0.0.0

Enable Debug Logging


Undo this when everything is working.
Edit the file:

/opt/jboss/server/default/deploy/alfresco.war/WEB-INF/classes/log4j.properties

Append the following:



# Enable Debug Logging for some subsystems
log4j.logger.org.alfresco=info
log4j.logger.org.alfresco.repo.workflow=debug
log4j.logger.org.alfresco.smb.protocol.auth=debug
log4j.logger.org.alfresco.acegi=debug
log4j.logger.org.alfresco.ftp.server=debug
log4j.logger.org.alfresco.webdav.protocol=debug
log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug
log4j.logger.org.alfresco.web.app.servlet.KerberosAuthenticationFilter=debug
log4j.logger.org.alfresco.repo.webdav.auth.KerberosAuthenticationFilter=debug
log4j.logger.org.alfresco.repo.security.authentication.ldap=DEBUG
log4j.logger.org.alfresco.module.vti=debug
log4j.logger.org.alfresco.cmis=debug
log4j.logger.org.alfresco.repo.imap=debug
log4j.logger.org.alfresco.fileserver=debug

Change port numbers


If you are sharing a server with other Java apps, here is how to make Alfresco use other ports.


Tomcat



$ALF_HOME/tomcat/conf/server.xml

FROM:

   

TO:

   

RMI


Append to:


$ALF_HOME/tomcat/shared/classes/alfresco-global.properties


# The well known RMI registry port is defined in the alfresco-shared.properties file
alfresco.rmi.services.port=50600
#
# RMI service ports for the individual services.
# These six services are available remotely.
#
# Assign individual ports for each service for best performance
# or run several services on the same port. You can even run everything on 50500 if needed.
#
# Select 0 to use a random unused port.
#
avm.rmi.service.port=50601
avmsync.rmi.service.port=50602
attribute.rmi.service.port=50603
authentication.rmi.service.port=50604
repo.rmi.service.port=50605
action.rmi.service.port=50606

Sharepoint


Append to:


$ALF_HOME/tomcat/shared/classes/alfresco-global.properties


#Sharepoint
vti.server.port=8082
web.application.context.url=http://localhost:8081/alfresco

Share


Edit:


$ALF_HOME/tomcat/webapps/share/WEB-INF/classes/alfresco/webscript-framework-config.xml

Change all references to 8080 to the new port 8081
As described here http://www.linknet.se/cstrom/index.php?entry=entry090103-214918




References


This is a combination of the following pages with additions and corrections.


TODO


  • Explain how to configure LDAP/Active Directory authentication, this is not yet working in my environment.

Installation
JBoss