Привет! В этой статье я постараюсь рассказать как установить бесплатную версию СЭД (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
Ну вот, мы и завершили самую легкую часть :)
 Удачи и до встречи в блоге.
 
