Alfresco: падение виртуальной машины Java при загрузке документа в Share

Столкнулся с неприятным глюком. При загрузке некоторых pdf документов java машина падает со следующей ошибкой в логах:

# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00002aab03784a37, pid=15890, tid=1123088704
#
# JRE version: 6.0_18-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (16.0-b13 mixed mode linux-amd64 )
# Problematic frame:
# C [libfontmanager.so+0x27a37]


Решение нашел здесь:

forums.alfresco.com/en/viewtopic.php?f=47&t=37225&start=0

Суть — заменить .jar файлы pdfbox-x.x.x.jar и fontbox-x.x.x.jar в tomcat/webapps/alfresco/WEB-INF/lib на более новые, например, отсюда:

mirror.ox.ac.uk/sites/rsync.apache.org/pdfbox/1.5.0/pdfbox-1.5.0.jar
mirror.ox.ac.uk/sites/rsync.apache.org/pdfbox/1.5.0/fontbox-1.5.0.jar

pdf документ для проверки: www.omicsonline.org/2155-9570/2155-9570-2-126.pdf

Alfresco: отключение кнопки "Смена пароля"

Т.к. я использую авторизацию через LDAP сервер Zimbrы (см. здесь и здесь) смена пароля пользователем не нужна. Чтобы скрыть в Alfresco Share соответствующий пункт меню редактируем файл /opt/alfresco/tomcat/webapps/share/WEB-INF/classes/alfresco/share-config.xml, комментируя:


               <container-group id="usermenu" label="">
                  <item type="user" id="status">{userprofilepage}</item>
                  <item type="link" id="my-profile">{userprofilepage}</item>
                  <!-- <item type="link" id="change-password" condition="!context.externalAuthentication">/user/change-password</item> -->
                  <item type="external-link" id="help">{share-help}</item>
                  <item type="link" id="logout" condition="!context.externalAuthentication">/dologout</item>
               </container-group>



Alfresco: переход с порта 8080 на 80

Наиболее простой способ заставить Alfresco работать на 80 порту это не править конфигурационные файлы, а использовать обратный прокси на базе web сервера Cherokee. Например, см. топик Настраиваем реверс прокси в Cherokee для работы с Tomcat. По установке Cherokee было подробно изложено в топике Mihael: CentOS 5.5: Установка веб сервера Cherokee + PHP5.3 + MySQL

В админке Cherokee в виртуальных хостах есть заготовочка для Alfresco:

( Читать дальше )

Alfresco: синхронизация пользователей с Zimbra

Продолжаем интеграцию, начатую в топике Alfresco: авторизация пользователей в Zimbra LDAP + SSL.

Есть сервер с Alfresco 3.4d и сервер с Zimbra 7. Синхронизация пользователей через LDAP Zimbrы происходит во время запуска Alfresco а также ежедневно в полночь (настройка Alfreso по-умолчанию, см. документацию).

При синхронизации создаются/обновляются учетные записи на сервере Alfresco с заполненными именем, фамилией, почтовым адресом.

Логин имеет вид почтового адреса пользователя, но без @domain.com. с таким-же именем создается домашняя директория пользователя.

При удалении пользователя в Zimbra он будет удален в Alfresco, но домашнюю директорию придется удалять вручную, т.к. там могут остаться файлы пользователя.

Группы синхронизируются со списками рассылки Zimbra.

Для синхронизации нам понадобится пароль от LDAP сервера Zimbra. Можно использовать административный пароль, а можно и создать отдельного пользователя. Чтобы поменять административный пароль на OpenLDAP Zimbrы (его просто забыть, т.к. после установки он нигде не используется пользователем):

( Читать дальше )

Alfresco: включение https в Tomcat

Для того, чтобы использовать https для начала сгенерируем самоподписанный сертификат. Например на 3 года. Моя alfresco установлена в /opt/alfresco.:

/opt/alfresco/java/bin/keytool -genkey -alias tomcat -keyalg RSA -validity 1095 -keystore /путь/к/keystore


Если уже есть существующий keystore (например, вы настраивали авторизацию по топику Alfresco: авторизация пользователей в Zimbra LDAP + SSL), в качестве keystore нужно указать существующий. Если нет, то создать новый.

В /opt/alfresco/tomcat/conf правим server.xml по аналогии:



    <Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="443" />

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="/путь/к/keystore" keystorePass="пароль" />



Стоит отметить, что alfresco так же будет работать и на порту 8080 и соответствующий коннектор отключать не нужно, нужно просто заблокировать доступ брандмауэром.

К сожалению, пока есть проблемы с Flash загрузчиком файлов при работе в некоторых браузерах через https:

bugs.adobe.com/jira/browse/FP-4830

Здесь описание как отключить Flash загрузчик:

forums.alfresco.com/en/viewtopic.php?f=47&t=37270

Alfresco: авторизация пользователей в Zimbra LDAP + SSL

Есть сервер с Alfresco 3.4d и сервер с Zimbra 7. Настроим авторизацию пользователей в LDAP Zimbra. Будем использовать SSL шифрование для LDAP. Есть одна трудность — по-умолчанию, LDAP Zimbrы работает на 389 порту и поддерживает конечно TLS, но Alfresco с ним нормально не работает. Для того, чтобы LDAP Zimbrы работал также на 636 порту с поддержкой SSL нужно подправить конфигурацию.

На сервере Zimbra заходим в консоль:

( Читать дальше )

Alfresco: русификация

Я использую Alfresco версии 3.4d, скачиваем русификацию отсюда:

forge.alfresco.com/projects/alf-russian/

Распаковываем как написано в инструкции.

Правим /путь-к-alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/web-client-config.xml.

Можно отключить выбор языка:

<language-select>false</language-select>


Добавляем в самое начало списка Русский, остальные можно закомментировать:


   <config evaluator="string-compare" condition="Languages">
      <!-- the list of available language files -->
      <languages>
         <language locale="ru_RU">Русский</language>
         <!--<language locale="en_US">English</language>
         <language locale="de_DE">German</language>
         <language locale="es_ES">Spanish</language>
         <language locale="fr_FR">French</language>
         <language locale="it_IT">Italian</language>-->
      </languages>
   </config>



Добавляем в /opt/alfresco/tomcat/bin/catalina.sh:

( Читать дальше )

Мониторинг измнений файлов в директории и создание зеркала директории в Linux

Задача — есть директория в которой добавляются или удаляются файлы. Директория без лишней вложенности. Необходимо в Linux отследить добавление или удаление файлов в директории и скопировать новые / удалить старые в зеркале директории. Это мне нужно было для синхронизации по WebDAV с Alfresco (rsync тут использовать не получится).

Приготовимся прострелить себе ногу:

apt-get install incron


incron — отслеживает изменения в файловой системе и выполняет какие-либо действия.

Создаем /etc/incron.d/dirs-sync с вот таким содержанием:

/отслеживаемая/директория/ IN_CLOSE_WRITE,IN_DELETE,IN_MOVED_TO,IN_MOVED_FROM /etc/script.sh $# $%


Таким образом мы передаем скрипту /etc/script.sh в качестве параметров имя файла и флаг события. Сам скрипт:

#!/bin/bash
# Sergei_T
tmpIFS=$IFS; IFS='\n'

logger $1 $2
ext=$(echo $1 | awk -F . '{print $NF}')

if [ $ext == "doc" ]; then
 if [[ $2 == "IN_DELETE" || $2 == "IN_MOVED_FROM" ]]; then
   logger deleting $1
   rm -v -f /целевая/директория/"$1" | logger
 else
   type=$(file -i /отслеживаемая/директория/"$1")
   if echo "$type" | egrep -q 'office|word'
   then
     logger copying $1
     cp -v /отслеживаемая/директория/"$1" /целевая/директория/ | logger
   fi
 fi
fi
IFS=$tmpIFS


Перезапускаем сервис:

service incron restart


В /var/log/mesages можем наблюдать за происходящим:

Jan 23 15:48:53 share logger: doc1.doc IN_CLOSE_WRITE
Jan 23 15:48:54 share logger: copy doc1.doc


Почитать
  • +3
  • 29 августа 2010, 23:34
  • Sergei_T
  • 1

Монтируем WebDAV ресурсы Alfresco в Ubuntu

Устанавливаем:

apt-get install davfs2


Монтируем:

mount.davfs http://server:8080/alfresco/webdav/Sites/сайт/documentLibrary/ /mnt/alfresco-dav


Чтобы не нужно было вводить вручную логин и пароль — добавим строчку в /etc/davfs2/secrets:

/mnt/alfresco-dav логин пароль


Можем добавить в /etc/fstab:

http://server:8080/alfresco/webdav/Sites/сайт/documentLibrary/ /mnt/alfresco-dav davfs


И добавить в /etc/rc.local:

mount /mnt/alfresco-dav

Установка Alfresco 3.3 в Ubuntu 10.04 LTS

Отличный мануал по установке Alfresco был найден мною здесь:

www.howtoforge.com/how-to-install-alfresco-community-3.3-on-ubuntu-server-10.04-lucid-lynx

Единственное, что не было освещено автором, это установка на 64 битную версию Ubuntu, для чего необходимо установить пакеты:

( Читать дальше )
  • +5
  • 29 августа 2010, 23:25
  • Sergei_T
  • 1