Alfresco Installation And Configuration On Solaris

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

How to install and configure Alfresco on Solaris

Install Solaris 11

First lets prepare the os, Install Solaris 11 global.
Now lets configure and install a Solaris zone (since Alfresco will be running in a zone).
Follow the below zone configuration to configure your Alfresco Solaris zone.

zfs create -o mountpoint=/docs rpool/docs
chmod 700 /docs
zonecfg -z docs
 
# Paste form below to file /tmp/docs.cfg/tmp/docs.cfg
# run zonecfg -z docs -f
create -b
set zonepath=/docs
set brand=ipkg
set autoboot=true
set scheduling-class=FSS
set ip-type=exclusive
add net
set physical=vnic0
end
add capped-memory
set physical=6G
end
add dataset
set name=rpool/opt/alfresco
end
add dataset
set name=rpool/alfresco
end
add dataset
set name=rpool/mysql-logs
end
add dataset
set name=rpool/mysql-data
end
commit
 
#Install zone
zoneadm -z docs install

Configure Local IP Address & route

ipadm create-addr -T static -a 10.10.0.171/22 igb0/v4static
route -p add default 10.10.0.1

Create vnic0 for the new zone

dladm create-vnic -l igb0 vnic0

Add some needed packages to the zone

# Note for sun studio you might need to add the sun studio repository
## Install in the global zone
pkg install SUNWrcap
## Install in the local zone
pkg install SUNWuiu8 imagemagick xpdf  sunstdioexpress gnu-coreutils x11-server-utilities FSWxorg-client-programs svr4 libcanberra

Install MySql 5.5

Note: MySql 5.5 is not supported on alfresco 3.3g, instead use mysql-51 installed with pkg

Download MySql 5.5 pkg for solaris x86 install and configure it.

gunzip mysql-5.5.8-solaris10-x86_64.pkg.gz
pkgadd -d mysql-5.5.8-solaris10-x86_64.pkg
/etc/init.d/mysql start
/opt/mysql/mysql/bin/mysqladmin -u root password 'new-password'
/opt/mysql/mysql/bin/mysqladmin -u root -h docs password 'new-password'

To start mysql

svcadm enable svc:/application/database/mysql:version_51

Install OpenOffcie 2.3.1 (or latter)

wget http://download.services.openoffice.org/files/stable/3.2.1/OOo_3.2.1_Solaris_x86_install-wJRE_en-US.tar.gz
 
gtar -zvxf OOo_3.2.1_Solaris_x86_install-wJRE_en-US.tar.gz 
 
cd OOO320_m18_native_packed-1_en-US.9502
./setup

Create Open Office start up script

cat /etc/init.d/start_oo.sh
#!/bin/bash
 
case $1 in
 
start)
nohup /opt/openoffice.org3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &
;;
stop)
pkill soffice
;;
*) echo "Usage: $0 [stop|start]"
esac
 
n -s /etc/init.d/start_oo.sh /etc/rc2.d/S50start_oo.sh

Install swftools 2.3.1

Download swftools

wget http://www.swftools.org/swftools-0.9.0.tar.gz
 
gtar -xvf swftools-0.9.0.tar.gz
cd swftools-0.9.0
 
./configure
dmake
dmake instal
# Note dmake and cc are from sunstidio

Install Alfresco Community Tomcat Bundle

cd /alfresco_src
 
wget -O alfresco-community-tomcat-3.3g.tar.gz http://dl.alfresco.com/release/community/build-2860/alfresco-community-tomcat-3.3g.tar.gz?dl_file=release/community/build-2860/alfresco-community-tomcat-3.3g.tar.gz
 
zfs create -p -o mountpoint=/opt/alfresco rpool/opt/alfresco
cd /opt/alfresco/
tar xvfz alfresco-community-tomcat-3.3g.tar.gz
 
vi *.sh
# Replace #!/bin/sh
# With #!/bin/bash
 
vi /opt/alfresco/tomcat/shared/classes/alfresco-global.properties
# Change mysql user/password

Configure MySql for alfresco

Configure MySql & alfresco database

Create ZFS MySql data set, and set the record size to 16k (match the db record size)

zfs create -o mountpoint=/mysql-data -o recordsize=16K rpool/mysql-data
zfs create -o mountpoint=/mysql-logs rpool/mysql-logs

Assign the dateset to the zone

zonecfg -z docs
zonecfg:docs> add dataset
zonecfg:docs:dataset> set name=rpool/mysql-logs
zonecfg:docs:dataset> end
zonecfg:docs> add dataset
zonecfg:docs:dataset> set name=rpool/mysql-data
zonecfg:docs:dataset> end
zonecfg:docs> commit
zonecfg:docs> exit

Create MySql databse & Configure MySql my.cnf

cd /opt/mysql/mysql (in 5.5) and or /usr/mysql/5.1/bin (in 5.1)
scripts/mysql_install_db --user=mysql

Make sure to turn off Double-write buffer on ZFS for the MySql db, change in my.cnf
Note: A full copy of my.cnf is available below appendix b

The InnoDB Double-write buffer
innodb_flush_method = O_DIRECT # For direct/IO also turns off per-fetching
innodb_data_file_path = ibdatafile:10G:autoextend # FileSystem configuration for ZFS

Create alfresco db

cd /opt/alfresco/extras/databases/mysql
 
Change user & password in db_setup.sql
/opt/mysql/mysql/bin/mysql -u root -p 

Set MySql log location

setprop mysql/log = astring: /mysql-logs
svcadm refresh svc:/application/database/mysql:version_51

Append A - alfresco-global.properties

cat /opt/alfresco/tomcat/shared/classes/alfresco-global.properties

###############################
## Common Alfresco Properties #
###############################

#
# Sample custom content and index data location
#-------------
dir.root=./alf_data

#
# Sample database connection properties
#-------------
db.name=alfresco
db.username=alfresco
db.password=password
db.host=localhost
db.port=3306

#
# External locations
#-------------
ooo.exe=soffice
ooo.enabled=true
img.root=/usr
swf.exe=/usr/local/bin/pdf2swf

#
# MySQL connection
#-------------
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}

#
# PostgreSQL connection (requires postgresql-8.2-504.jdbc3.jar or equivalent)
#
#db.driver=org.postgresql.Driver
#db.url=jdbc:postgresql://localhost:5432/alfresco

#
# Index Recovery Mode
#-------------
#index.recovery.mode=AUTO

#
# Outbound Email Configuration
#-------------
#mail.host=
#mail.port=25
#mail.username=anonymous
#mail.password=
#mail.encoding=UTF-8
#mail.from.default=alfresco@alfresco.org
#mail.smtp.auth=false

#
# Alfresco Email Service and Email Server
#-------------

# Enable/Disable the inbound email service.  The service could be used by processes other than
# the Email Server (e.g. direct RMI access) so this flag is independent of the Email Service.
#-------------
#email.inbound.enabled=true

# Email Server properties
#-------------
#email.server.enabled=true
#email.server.port=25
#email.server.domain=alfresco.com
#email.inbound.unknownUser=anonymous

# A comma separated list of email REGEX patterns of allowed senders.
# If there are any values in the list then all sender email addresses
# must match. For example:
#   .*\@alfresco\.com, .*\@alfresco\.org
# Allow anyone:
#-------------
#email.server.allowed.senders=.*

#
# The default authentication chain
# To configure external authentication subsystems see:
# http://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems
#-------------
#authentication.chain=alfrescoNtlm1:alfrescoNtlm

#
# URL Generation Parameters (The ${localname} token is replaced by the local server name)
#-------------
alfresco.context=alfresco
alfresco.host=${localname}
alfresco.port=8080
alfresco.protocol=http
#
share.context=share
share.host=${localname}
share.port=8080
share.protocol=http

#imap.server.enabled=true
#imap.server.port=143
#imap.server.host=localhost

#
# RMI Services
# To make your RMI services available from other machines you will need to change
# alfresco.rmi.services.host from "localhost".
# alfresco.rmi.services.port=50500

Start & Login to alfresco

Start alfresco

/opt/alfresco/alfresco.sh start

Login to Alfresco Explorer or Alfresco Share
Alfresco has two ways to access the application — Alfresco Explorer and Alfresco Share.

LDAP * Alfresco login

Modify the ldap-authentication.properties to support ldap

  • /opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/ldap/ldap-authentication.properties

Or
Add at the end of /opt/alfresco/tomcat/shared/classes/alfresco-global.properties

authentication.chain=alfrescoNtlm1:alfrescoNtlm,ldap1:ldap
ldap.authentication.active=true
ldap.authentication.allowGuestLogin=true

ldap.authentication.userNameFormat=uid\=%s,OU\=Computer_IT,ou\=People,o\=domain.com,dc\=subdomain,dc\=com
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://ldap.domain.com:389
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false
ldap.authentication.defaultAdministratorUserNames=admin
ldap.synchronization.active=true
ldap.synchronization.java.naming.security.principal=cn=proxyagent,ou=profile,dc=domain,dc=com
ldap.synchronization.java.naming.security.credentials=password
ldap.synchronization.queryBatchSize=0
#ldap.synchronization.queryBatchSize=5000
ldap.synchronization.groupQuery=(objectclass\=posixGroup)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=posixGroup)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(objectclass\=inetOrgPerson)
ldap.synchronization.personDifferentialQuery=(&(objectclass\=inetOrgPerson)(!(modifyTimestamp<\={0})))
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'Z'
ldap.synchronization.userIdAttributeName=uid
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupType=posixGroup
#ldap.synchronization.userOrganizationalIdAttributeName=msExchALObjectVersion
ldap.synchronization.defaultHomeFolderProvider=homeDirectory
ldap.synchronization.groupSearchBase=ou\=Group,o\=domain.com,dc\=subdomain,dc\=com
ldap.synchronization.userSearchBase=OU\=Computer_IT,ou\=People,o\=domain.com,dc\=subdomain,dc\=com
ldap.synchronization.groupMemberAttributeName=memberUid
ldap.synchronization.synchronizeChangesOnly=true
ldap.synchronization.import.cron
ldap.synchronization.syncOnStartup=true
ldap.synchronization.syncWhenMissingPeopleLogIn=true
ldap.synchronization.autoCreatePeopleOnLogin=false
ldap.synchronization.personType=inetOrgPerson

Alfresco 3.4.d additional Install

  • install additional packages
pkg install javamail jta.jar libnb-java sendmail openoffice imagemagick tomcat mysql51
  • Note: PATH to tomcat is /var/tomcat
  • Add to /usr/tomcat6/bin/catalina.sh
export ALF_HOME=/usr/tomcat6
export JAVA_OPTS='-Xms512m -Xmx2048m -Xss1024k -XX:MaxPermSize=256m -XX:NewSize=256m -server'
export JAVA_OPTS="${JAVA_OPTS} -Dalfresco.home=${ALF_HOME} -Dcom.sun.management.jmxremote"
  • Copy alfresco files (Make backups first)
cp web-server/conf/* /var/tomcat6/conf/.
cp web-server/webapps/* var/tomcat6/webapps/.
cp -rp web-server/shared /var/tomcat6/.
cp web-server/lib/mysql-connector-java-5.1.13-bin.jar /usr/tomcat6/lib/.
  • Modify logs4j to the proper directory
Replace in /var/tomcat6/webapps/alfresco/WEB-INF/classes/log4j.properties

From
log4j.appender.File.File=alfresco.log

To
log4j.appender.File.File=/var/tomcat6/logs/alfresco.log

  • Modify /var/tomcat6/shared/classes/alfresco-global.properties
###############################
## Common Alfresco Properties #
###############################

#
# Sample custom content and index data location
#-------------
dir.root=/var/tomcat6/alf_data

#
# Sample database connection properties
#-------------
db.name=alfresco2
db.username=alfresco
db.password=password
db.host=docs
db.port=3306

#
# External locations
#-------------
ooo.exe=soffice
ooo.enabled=true
img.root=/usr
swf.exe=/usr/local/bin/pdf2swf

#
# MySQL connection
#-------------
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}

#
# Cifs config
#-------------
cifs.enabled=true
cifs.Server.Name=test
cifs.domain=DOMAIN.LOCAL
cifs.hostanounce=true

cifs.broadcast=0.0.0.0
cifs.tcpipSMB.port=1445
cifs.ipv6.enabled=false
cifs.netBIOSSMB.namePort=1137
cifs.netBIOSSMB.datagramPort=1138
cifs.netBIOSSMB.sessionPort=1139

#
# PostgreSQL connection (requires postgresql-8.2-504.jdbc3.jar or equivalent)
#
#db.driver=org.postgresql.Driver
#db.url=jdbc:postgresql://localhost:5432/alfresco

#
# Index Recovery Mode
#-------------
index.recovery.mode=AUTO

#
# Outbound Email Configuration
#-------------
mail.host=localhost
mail.port=25
#mail.username=anonymous
#mail.password=
mail.encoding=UTF-8
mail.from.default=do-not-reply-alfresco@domain.com
mail.smtp.auth=false

#
# Alfresco Email Service and Email Server
#-------------

# Enable/Disable the inbound email service.  The service could be used by processes other than
# the Email Server (e.g. direct RMI access) so this flag is independent of the Email Service.
#-------------
email.inbound.enabled=true

# Email Server properties 
#-------------
#email.server.enabled=true
#email.server.port=25
#email.server.domain=domain.com
#email.inbound.unknownUser=anonymous

# A comma separated list of email REGEX patterns of allowed senders.
# If there are any values in the list then all sender email addresses
# must match. For example:
#   .*\@alfresco\.com, .*\@alfresco\.org
# Allow anyone:
#-------------
#email.server.allowed.senders=.*

#
# The default authentication chain
# To configure external authentication subsystems see:
# http://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems
#-------------
#authentication.chain=alfrescoNtlm1:alfrescoNtlm

#
# URL Generation Parameters (The ${localname} token is replaced by the local server name)
#-------------
alfresco.context=alfresco
alfresco.host=${localname}
alfresco.port=8080
alfresco.protocol=http
#
share.context=share
share.host=${localname}
share.port=8080
share.protocol=http

imap.server.enabled=true
imap.server.port=143
imap.server.host=localhost

#
# RMI Services
# To make your RMI services available from other machines you will need to change 
# alfresco.rmi.services.host from "localhost".
# alfresco.rmi.services.port=50500

authentication.chain=alfrescoNtlm1:alfrescoNtlm,ldap1:ldap
#authentication.chain=alfrescoNtlm1:alfrescoNtlm,passthru1:passthru,ldap1:ldap
#cifs.domain=DOMAIN.LOCAL


#
#ntlm.authentication.sso.enabled=true
#passthru.authentication.authenticateCIFS=true 
#passthru.authentication.domain=DOMIAN.LOCAL\\server1.domain.local,DOMAIN.LOCAL\\server2.domain.local
#alfresco.authentication.authenticateCIFS=true

ldap.authentication.active=true
ldap.authentication.allowGuestLogin=false

#ldap.authentication.userNameFormat=uid\=%s,OU\=Computer_IT,ou\=People,o\=domain.com,dc\=subdomain,dc\=com
ldap.authentication.userNameFormat=
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://ldap1.domain.com:389
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.java.naming.security.principal=cn=proxyagent,ou=profile,dc=subdomain,dc=com
ldap.authentication.java.naming.security.credentials=password
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false
ldap.authentication.defaultAdministratorUserNames=admin
#
ldap.synchronization.active=true
ldap.synchronization.java.naming.security.principal=cn=proxyagent,ou=profile,dc=subdomain,dc=com
ldap.synchronization.java.naming.security.credentials=password
ldap.synchronization.queryBatchSize=0
#ldap.synchronization.queryBatchSize=5000
ldap.synchronization.groupQuery=(objectclass=groupofuniquenames)
ldap.synchronization.groupDifferentialQuery=(&(objectclass=groupofuniquenames)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(objectclass=inetOrgPerson)
ldap.synchronization.personDifferentialQuery=(&(objectclass=inetOrgPerson)(!(modifyTimestamp<\={0})))
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'Z'
ldap.synchronization.userIdAttributeName=uid
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupType=groupofuniquenames
#ldap.synchronization.userOrganizationalIdAttributeName=msExchALObjectVersion
ldap.synchronization.defaultHomeFolderProvider=homeDirectory
ldap.synchronization.groupSearchBase=dc=subdomain,dc=com
ldap.synchronisation.personSearchBase=ou=People,o=domain.com,dc=subdoamin,dc=com
ldap.synchronization.userSearchBase=ou=People,o=domain.com,dc=subdomain,dc=com
#ldap.synchronization.groupSearchBase=ou\=Group,o\=domain.com,dc\=subdomain,dc\=com
ldap.synchronization.groupMemberAttributeName=uniqueMember
ldap.synchronization.synchronizeChangesOnly=true
ldap.synchronization.import.cron
ldap.synchronization.syncOnStartup=true
ldap.synchronization.syncWhenMissingPeopleLogIn=true
ldap.synchronization.autoCreatePeopleOnLogin=false
ldap.synchronization.personType=inetOrgPerson
ldap.synchronization.autoSyncMissingUse=true

#
org.alfresco.fileserver=debug

Appendx B - /etc/my.cnf

my.cnf for MySql 5.5

# Copyright (C) 2009 Sun Microsystems, Inc
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

# Default values that applies to all MySQL Servers
[mysqld]
open-files-limit=           1024
local-infile
character-set-server=      latin1

# Increase default connect_timeout to avoid intermittent
# disconnects when test servers are put under load see BUG#28359
connect-timeout=            60

log-bin-trust-function-creators=1
key_buffer_size=            64M
sort_buffer=                256K
max_heap_table_size=        128M

datadir=                          /mysql-data
#innodb_data_home_dir=             /mysql-data
loose-innodb_data_file_path=      ibdatafile:4096M:autoextend
loose-innodb_buffer_pool_size=    2G
loose-innodb_write_io_threads=    2
loose-innodb_read_io_threads=     2
loose-innodb_log_buffer_size=     16M
loose-innodb_log_file_size=       1G
loose-innodb_additional_mem_pool_size= 1024M
loose-innodb_log_files_in_group=  2

slave-net-timeout=120

log-bin=mysqld-bin

# Run tests with the performance schema instrumentation
loose-enable-performance-schema
# Run tests with a small number of instrumented objects
# to limit memory consumption with MTR
loose-performance-schema-max-mutex-instances=10000
loose-performance-schema-max-rwlock-instances=10000
loose-performance-schema-max-table-instances=500
loose-performance-schema-max-table-handles=1000

binlog-direct-non-transactional-updates

# Add by eli (needed for ZFS)
skip-innodb_doublewrite
innodb_file_io_threads =         4
innodb_thread_concurrency =      32
innodb_log_group_home_dir =      /mysql-logs
#innodb_flush_method =            O_DIRECT

#
#set-variable=long_query_time=5
slow-query-log-file=/mysql-logs/log-slow-queries.log
slow-query-log = 1
slow_query_log = 1
long_query_time = 1


[mysqldump]
quick
max_allowed_packet = 16M

my.cnf for MySql 5.1 (slight changed)

# Copyright (C) 2009 Sun Microsystems, Inc
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

# Default values that applies to all MySQL Servers
[mysqld]
open-files-limit=           1024
local-infile
character-set-server=      latin1

# Increase default connect_timeout to avoid intermittent
# disconnects when test servers are put under load see BUG#28359
connect-timeout=            60

log-bin-trust-function-creators=1
key_buffer_size=            64M
sort_buffer=                256K
max_heap_table_size=        128M

datadir=                          /mysql-data
#innodb_data_home_dir=             /mysql-data
loose-innodb_data_file_path=      ibdatafile:4096M:autoextend
loose-innodb_buffer_pool_size=    2G
#loose-innodb_write_io_threads=    2
#loose-innodb_read_io_threads=     2
loose-innodb_log_buffer_size=     16M
loose-innodb_log_file_size=       1G
loose-innodb_additional_mem_pool_size= 1024M
loose-innodb_log_files_in_group=  2

slave-net-timeout=120

log-bin=mysqld-bin

# Run tests with the performance schema instrumentation
#loose-enable-performance-schema
# Run tests with a small number of instrumented objects
# to limit memory consumption with MTR
#loose-performance-schema-max-mutex-instances=10000
#loose-performance-schema-max-rwlock-instances=10000
#loose-performance-schema-max-table-instances=500
#loose-performance-schema-max-table-handles=1000

#binlog-direct-non-transactional-updates

# Add by eli (needed for ZFS)
skip-innodb_doublewrite
innodb_file_io_threads =         4
innodb_thread_concurrency =      32
innodb_log_group_home_dir =      /mysql-logs
#innodb_flush_method =            O_DIRECT

#
#set-variable=long_query_time=5
slow-query-log-file=/mysql-logs/log-slow-queries.log
slow-query-log = 1
slow_query_log = 1
long_query_time = 1


[mysqldump]
quick
max_allowed_packet = 16M

Troubleshooting

  • Alfresco logs: tail -f /opt/alfresco/alfresco.log
  • Tomcat logs: tail -f /opt/alfresco/tomcat/logs/catalina.out

References

Leave a Reply

avatar
3000
  Subscribe  
Notify of