Привет! В этой статье я постараюсь рассказать как установить бесплатную версию СЭД (ECM) Alfresco Community в Ubuntu Server 14.04.1 LTS x64.
1. Перед установкой самой системы Alfresco, нам придется подготовить «жизненное пространство» для нее, так что засучиваем рукава и устанавливаем все необходимые компоненты.
Итак, начнем:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get purge openjdk-*
Этими командами мы: обновили список доступных пакетов, обновили систему и удалили все установленные пакеты open JDK. Ибо мы будем использовать JDK от Oracle.
Далее:
adduser alfresco
Enter new UNIX password: alfresco
Этим мы создали пользователя alfresco с одноименным паролем.
Продолжим:
su – alfresco
— Начинаем работать от имени пользователя alfresco. Установка Java JDK: скачиваем JDK 1.7.0_71 отсюда, затем выполняем:
sudo mkdir -p /opt/java
tar zxvf jdk-7u71-linux-x64.gz
sudo mv jdk1.7.0_71/ /opt/java/
Командами выше, мы:
— создаем директорию для JDK
— распаковываем архив с JDK
— переносим распакованную папку в /opt/java (sudo здесь нужно для того, чтобы получить необходимые права доступа на запись к файловой системе, так как мы для директории /opt/java еще не установили доступ для пользователя alfresco)
sudo chmod -R +rx /opt/java
— даем права на чтение и исполнение для всех в директории /opt/java/
sudo nano /etc/profile.d/java.sh
Вставляем строки:
export JAVA_HOME=/opt/java/jdk1.7.0_71
export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
Затем, нажимаем Ctrl+O (сохраняем файл) и Ctrl+X (выходим в shell).
Даем права: sudo chmod +rx /etc/profile.d/java.sh
Перезагружаем командой reboot
.
Проверяем работу JDK:
java -version
Теперь дело за установкой GhostScript и ImageMagick:
sudo apt-get install ghostscript imagemagick
Проверяем:
convert --version
whereis convert
Должно найтись в /usr/bin/convert
Для установки FFMpeg добавляем репозиторий в базу, обновляем список пакетов и стандартно устанавливаем:
sudo add-apt-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg
Следом идет установка SWFTools:
sudo apt-get install libjpeg62 libgif4
wget https://archive.canonical.com/ubuntu/pool/partner/s/swftools/swftools_0.9.0-0ubuntu2_amd64.deb
chmod a+x swftools_0.9.0-0ubuntu2_amd64.deb
sudo dpkg -i swftools_0.9.0-0ubuntu2_amd64.deb
Проверяем:
whereis pdf2swf
Если найдется в /usr/bin/pdf2swf, значит правильной дорогой идете, товарищ.
Установка LibreOffice :
sudo apt-get install libreoffice
Проверяем: whereis soffice
— Результат должен быть: /usr/bin/soffice
Базу данных будем использовать PostgreSql:
Устанавливаем движок, ставим пароль на пользователя postgres — postgres
sudo apt-get install postgresql postgresql-contrib
sudo passwd postgres
postgres
Создаем пустую базу данных alfresco и присваиваем ее пользователю alfresco с паролем alfresco
sudo -u postgres psql postgres
CREATE ROLE alfresco WITH PASSWORD 'alfresco' LOGIN;
CREATE DATABASE alfresco WITH OWNER alfresco;
нажимаем ctrl+d, затем вводим:
sudo -u alfresco psql alfresco
ALTER USER alfresco WITH PASSWORD 'alfresco';
снова жмем ctrl+d - готово.
Теперь возьмемся за установку сервера приложений Tomcat, на момент написания статьи, версия была 7.0.57. Скачиваем архив с сайта Apache, создаем директорию alfresco, даем права на нее одноименному пользователю, распаковываем архив в созданную директорию, запускаем tomcat, проверяем инстанцию (кстати, вы можете попробовать зайти по адресу https://имя_хоста:8080, используя браузер, чтобы проверить работу Tomcat.) :
sudo mkdir -p /opt/alfresco
sudo chown alfresco:alfresco /opt/alfresco
wget https://apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz
tar xzvf apache-tomcat-7.0.57.tar.gz
sudo mv apache-tomcat-7.0.57 /opt/alfresco/tomcat
sudo chown -R alfresco:alfresco /opt/alfresco/tomcat
/opt/alfresco/tomcat/bin/startup.sh
ps -ef | grep java
После успешной проверки установленного компонента, останавливаем сервис:
/opt/alfresco/tomcat/bin/shutdown.sh
2. Теперь мы имеем полное право заняться установкой самой ECM Alfresco.
Для этого скопируем конфигурацию-пример в действительный файл настроек и запустим редактор этого файла:
cp /opt/alfresco/tomcat/conf/catalina.properties /opt/alfresco/tomcat/conf/catalina.properties.orig
nano /opt/alfresco/tomcat/conf/catalina.properties
В нем находим строку shared.loader и заменяем ее наshared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
Сохраняемся и выходим. Помните как? Ctrl+O, Enter, Ctrl+X
Следующим шагом будет сделать тоже с файлом настроек сервера — server.xml :
cp /opt/alfresco/tomcat/conf/server.xml /opt/alfresco/tomcat/conf/server.xml.orig
nano /opt/alfresco/tomcat/conf/server.xml
В нем мы добавляем между тегами <Connector……/> параметрURIEncoding="UTF-8"
Следующий файл — context.xml :
nano /opt/alfresco/tomcat/conf/context.xml
Добавляем строку перед закрывающим тегом :
<Valve className=»org.apache.catalina.authenticator.SSLAuthenticator» securePagesWithPragma=»false» />
Создаем дополнительные рабочие директории:
mkdir -p /opt/alfresco/tomcat/shared
mkdir -p /opt/alfresco/tomcat/shared/classes
mkdir -p /opt/alfresco/tomcat/shared/lib
mkdir -p /opt/alfresco/tomcat/endorsed
Скачиваем дистрибутив Alfresco с SourceForge и распаковываем его:
wget https://sourceforge.net/projects/alfresco/files/Alfresco%205.0.c%20Community/alfresco-community-5.0.c.zip/download
mv download alfresco-community-5.0.c.zip
unzip alfresco-community-5.0.c.zip
Копируем необходимые директории и файлы в место, где будет жить наш Alfresco:
cd alfresco-community-5.0.c/
cp -R bin /opt/alfresco
cp -R web-server/endorsed/* /opt/alfresco/tomcat/endorsed
cp -R web-server/shared/* /opt/alfresco/tomcat/shared
cp -R web-server/lib/* /opt/alfresco/tomcat/lib
cp -R web-server/webapps/* /opt/alfresco/tomcat/webapps/
Теперь можно удалить распакованный архив alfresco-community-5.0.c.
Создаем необходимые скрипты:
1. Для LibreOffice
nano /opt/alfresco/start_oo.sh
Вставляем в него:
#!/bin/sh -e
SOFFICE_ROOT=/usr/bin
"${SOFFICE_ROOT}/soffice" "--accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" --nologo --headless &
Сохраняем, выходим.
Даем права, проверяем работу:
chmod uga+x /opt/alfresco/start_oo.sh
/opt/alfresco/start_oo.sh
ps -ef | grep soffice
Убиваем процесс: killall soffice.bin
2. Для запуска Alfresco:
nano /opt/alfresco/alfresco.sh
Вставляем в него:
#!/bin/sh -e
# Start or stop Alfresco server
# Set the following to where Tomcat is installed
ALF_HOME=/opt/alfresco
cd "$ALF_HOME"
APPSERVER="${ALF_HOME}/tomcat"
export CATALINA_HOME="$APPSERVER"
# Set any default JVM values
export JAVA_OPTS='-Xms512m -Xmx768m -Xss768k -XX:MaxPermSize=256m -XX:NewSize=256m -server'
export JAVA_OPTS="${JAVA_OPTS} -Dalfresco.home=${ALF_HOME} -Dcom.sun.management.jmxremote"
if [ "$1" = "start" ]; then
"${APPSERVER}/bin/startup.sh"
if [ -r ./start_oo.sh ]; then
"${ALF_HOME}/start_oo.sh"
fi
elif [ "$1" = "stop" ]; then
"${APPSERVER}/bin/shutdown.sh"
killall -u alfresco java
killall -u alfresco soffice.bin
fi
Сохраняем, выходим и, аналогично предыдущему, даем права:
chmod uga+x /opt/alfresco/alfresco.sh
3. Для запуска Alfresco при старте системы:
sudo nano /etc/init.d/alfresco
Вставляем:
#!/bin/sh -e
ALFRESCO_SCRIPT="/opt/alfresco/alfresco.sh"
if [ "$1" = "start" ]; then
su - alfresco "${ALFRESCO_SCRIPT}" "start"
elif [ "$1" = "stop" ]; then
su - alfresco "${ALFRESCO_SCRIPT}" "stop"
elif [ "$1" = "restart" ]; then
su - alfresco "${ALFRESCO_SCRIPT}" "stop"
su - alfresco "${ALFRESCO_SCRIPT}" "start"
else
echo "Usage: /etc/init.d/alfresco [start|stop|restart]"
fi
Сохраняем, выходим, даем права:
sudo chmod uga+x /etc/init.d/alfresco
sudo chown alfresco:alfresco /etc/init.d/alfresco
Создаем ссылку для консольной загрузки (INIT 3):
ln -s /etc/init.d/alfresco /etc/rc3.d/S95alfresco
Последние приготовления и настройки:
mkdir /opt/alfresco/alf_data
cp /opt/alfresco/tomcat/shared/classes/alfresco-global.properties.sample /opt/alfresco/tomcat/shared/classes/alfresco-global.properties
nano /opt/alfresco/tomcat/shared/classes/alfresco-global.properties
Параметры, которые нам нужно проверить и, при необходимости, добавить-изменить:
dir.root=/opt/alfresco/alf_data
db.username=alfresco
db.password=alfresco
# OpenOffice
ooo.exe=/usr/lib/libreoffice/program/soffice.bin
ooo.enabled=true
jodconverter.officeHome=/usr/lib/libreoffice
jodconverter.portNumbers=8100
jodconverter.enabled=true
# ImageMagick installation
img.root=/usr/share/doc/imagemagick
img.exe=/usr/bin/convert
# SWFTools exe
swf.exe=/usr/bin/pdf2swf
db.schema.update=true
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/alfresco
index.recovery.mode=AUTO
authentication.chain=alfrescoNtlm1:alfrescoNtlm
Сохраняем, выходим.
На этом все. Мы можем приступить к запуску всех служб:
service alfresco start
Сразу после этого, открываем логи и внимательно следим за процессом запуска:
tail -f /opt/alfresco/tomcat/logs/catalina.out
Проблемы, с которыми столкнулся я это ругательства по поводу CIFS и SMB
Решил их путем добавления кода в файл настроек:
nano /opt/alfresco/tomcat/shared/classes/alfresco-global.properties
Код:
# CIFS configuration
#
cifs.enabled=true
cifs.ipv6=disabled
cifs.serverName=doc
cifs.domain=DOMAIN.LAN
cifs.hostannounce=true
cifs.urlfile.prefix=https://${localname}:8080/alfresco
cifs.bindto=0.0.0.0
cifs.broadcast=255.255.255.255
cifs.hostannounce=true
cifs.tcpipSMB.port=10445
cifs.netBIOSSMB.sessionPort=10139
cifs.netBIOSSMB.namePort=10137
cifs.netBIOSSMB.datagramPort=10138
cifs.platforms=linux,solaris,macosx
cifs.WINS.autoDetectEnabled=true
После этого проблемы ушли.
Если все ошибки были устранены, заходим по адресу
https://имя_хоста:8080/alfresco и начинаем углубленно изучать структуру системы.
логин и пароль по-умолчанию admin
Кстати, в данной конфигурации «из коробки» не работает поисковый движок solr. С Alfresco 5.0.c Community в архиве есть директория solr4 версии. Чтобы поиск заработал, нужно подружить alfresco и solr4
Ну вот, мы и завершили самую легкую часть :)
Удачи и до встречи в блоге.