Instruktaż/Tutorial OpenKM 6.3.0 dla platformy ARM

qiui

System Engineer
Q Specialist
29 Listopad 2013
168
35
28
QNAP
TS-x51+
Ethernet
1 GbE
OpenKM 6.3.0 na bazie MySQL
system elektronicznego zarządzania dokumentami (DMS)
dla platformy ARM (na przykładzie TS-x21)
uruchomiony w Natywnym Debianie Squeeze

[Notatki informacyjne]
Producent zaleca instalację na maszynach posiadających 2 GB pamięci RAM i procesora dual-core Intel 3,2 GHz (dla 30-50 użytkowników systemu), dlatego instalacja tego na maszynach typu TS-x21 z 1 GB RAM jest poniżej minimalnych wymagań (ale działa :) ).

[Instalacja]
  1. Zainstaluj Natywnego Debiana Squeeze.

  2. Pobierz Oracle Java SE Embedded (zgodnie z zaleceniem producenta OpenKM powinno być to JDK 6 lub 7, ale dla platformy ARMv5 dostępna jest jedynie wersja Embedded JRE). Wersja do pobrania:
    ARMv5 Linux - Headless EABI, SoftFP ABI, Little Endian - ejre-7u75-fcs-b13-linux-arm-sflt-headless-18_dec_2014.tar.gz
    1. Ze względów licencyjnych podaję linka do strony producenta. W celu pobrania konieczne będzie założenie konta w portalu oracle.com.
    2. W czasie czytania tego postu może być dostępna nowa wersja, dlatego w następnych krokach należy w odpowiednich miejscach uwzględnić poprawną lokalizację folderu JAVA.

  3. Przenieś pobrany plik ejre-... do powyżej zainstalowanego Natywnego Debiana do folderu
    /opt/

  4. Pobierz załączony do tego postu plik libsigar-arm-linux.tar.gz i podobnie jak w pkt. 3 przenieś go do folderu
    /opt/

  5. Zaloguj się do QNAPa (nie Natywnego Debiana) w celu przygotowania bazy MySQL
    Bash:
    # Podłącz się do bazy MySQL
    /mnt/ext/opt/mysql/bin/mysql -h localhost -u root -p
    I wykonaj poniższe operacje:
    Kod:
    # Utwórz bazę "okmdb"
    DROP DATABASE IF EXISTS okmdb;
    CREATE DATABASE okmdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
    
    # Utwórz użytkownika bazy "okmdb"
    CREATE USER openkm@localhost IDENTIFIED BY 'twoje_haslo_dla_uzytkownika';
    GRANT ALL ON okmdb.* TO openkm@localhost WITH GRANT OPTION;
    exit;
    UWAGA: Zapamiętaj hasło użytkownika.

  6. Za pomocą klienta SSH (np. PuTTY) zaloguj się na do powyższej instalacji Natywnego Debiana i wykonaj poniższe polecenia
    1. Bash:
      # Utwórz katalog OpenKM
      mkdir -p /opt/OpenKM
      cd /opt/OpenKM
      
      # Przenieś i rozpakuj pobraną instalację JAVA
      mv /opt/ejre-7u75-fcs-b13-linux-arm-sflt-headless-18_dec_2014.tar.gz /opt/OpenKM
      tar zxvf ejre-7u75-fcs-b13-linux-arm-sflt-headless-18_dec_2014.tar.gz
      rm -f ejre-7u75-fcs-b13-linux-arm-sflt-headless-18_dec_2014.tar.gz
      
      # Pobierz OpenKM 6.3.0
      curl -L -O http://sourceforge.net/projects/openkm/files/6.3/openkm-6.3.0-community-tomcat-bundle.zip
      unzip openkm-6.3.0-community-tomcat-bundle.zip
      rm -f openkm-6.3.0-community-tomcat-bundle.zip
      
      # Podegraj bibliotekę libsigar-arm-linux.so
      tar zxvf ../libsigar-arm-linux.tar.gz
      mv libsigar-arm-linux.so tomcat/lib/sigar/
      rm -f ../libsigar-arm-linux.tar.gz

    2. Bash:
      # Konfiguracja połączenia do bazy "okmdb"
      vim /opt/OpenKM/tomcat/conf/server.xml
      Odkomentuj (usuń znaczniki <!-- -->) poniższy fragment
      XML:
      <Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
                  maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1"
                  username="openkm" password="*****" driverClassName="com.mysql.jdbc.Driver"
                  url="jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
      W miejsce ***** wstaw hasło utworzonego użytkownika bazy danych (twoje_haslo_dla_uzytkownika).
      Następnie zakomentuj (dodaj znaczniki <!-- -->) poniższy fragment
      XML:
      <Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
                  maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
                  username="sa" password="" driverClassName="org.hsqldb.jdbcDriver"
                  url="jdbc:hsqldb:${catalina.base}/repository/okmdb"/>
      Bash:
      # Zmień dialekt połączenia
      vim /opt/OpenKM/tomcat/OpenKM.cfg
      Zamień
      INI:
      hibernate.dialect=org.hibernate.dialect.HSQLDialect
      na
      INI:
      hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

    3. Ustaw parametry wykorzystania pamięci przez wirtualną maszynę JAVA (poniższa konfiguracja dotyczy urządzenia z 1 GB pamięci RAM)
      Bash:
      vim /opt/OpenKM/tomcat/bin/setenv.sh
      Zamień:
      Bash:
      JAVA_OPTS="$JAVA_OPTS -Xms256m -sXmx1256m -XX:PermSize=256m -XX:MaxPermSize=512m"
      Na:
      Bash:
      JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m"

    4. Zmień porty wykorzystywane przez serwer Tomcat
      Bash:
      vim /opt/OpenKM/tomcat/conf/server.xml
      Domyślnie wykorzystywane są porty:
      • Shutdown port: 8005
      • AJP Connector port: 8009
      • Tomcat Connector port: 8080
      • Tomcat SSL Connector port: 8443.
      Jeśli Twój QNAP nie wykorzystuje tych portów, to możesz nie zmieniać tej konfiguracji. Jeśli jednak porty te są już wykorzystywane - zmień je. Poniżej moja propozycja:
      • Shutdown port: 9005
      • AJP Connector port: 9009
      • Tomcat Connector port: 9080
      • Tomcat SSL Connector port: 9443.
      Rekonfiguracja portów polega na zmianie wszystkich portów o podanym numerze na nowy numer (np. zmieniając port 8005, zastępuję wszystkie wystąpienia tego portu na 9005).

    5. W celu poprawnego generowania podglądów wymagane jest zainstalowanie i konfiguracja:
      1. LibreOffice
        Bash:
        # Dodaj backport do listy źródeł
        vim /etc/apt/sources.list
        Dodaj na końcu pliku:
        Bash:
        # Squeeze Backports na potrzeby instalacji LibreOffice
        deb http://ftp.vectranet.pl/debian-backports squeeze-backports main
        Wykonaj poniższe polecenia w celu zainstalowania LibreOffice
        Bash:
        apt-get update
        apt-get install -t squeeze-backports uno-libs3 # removes openoffice.org-*
        apt-get install -t squeeze-backports libreoffice
      2. SWFTools
        Bash:
        mkdir /opt/OpenKM/swftools
        
        # Doinstaluj brakujące biblioteki
        aptitude update
        aptitude install build-essential libgif-dev xpdf libfreetype6 libfreetype6-dev libjpeg62 libjpeg8 libjpeg8-dev
        
        # Pobierz SWFTools
        cd /opt/OpenKM/
        wget http://www.swftools.org/swftools-0.9.2.tar.gz
        tar -zvxf swftools-0.9.2.tar.gz
        cd swftools-0.9.2/
        
        # Zainstaluj SWFTools
        ./configure --prefix=/opt/OpenKM/swftools
        make
        make install
        cd ..
        rm -rf swftools-0.9.2/
        
        # Zmień konfigurację uruchamiania pdf2swf
        vim /opt/OpenKM/tomcat/OpenKM.cfg
        Zamień
        INI:
        system.swftools.pdf2swf=/opt/openkm/bin/pdf2swf -f -T 9 -t -s storeallcharacters ${fileIn} -o ${fileOut}
        Na
        INI:
        system.swftools.pdf2swf=/opt/OpenKM/swftools/bin/pdf2swf -f -T 9 -t -G -s storeallcharacters ${fileIn} -o ${fileOut}
      3. ImageMagick
        Bash:
        # Instalacja ImageMagick
        aptitude install imagemagick
    6. Ustaw zmienną środowiskową JRE_HOME
      Bash:
      vim /etc/environment
      Wprowadź:
      INI:
      JRE_HOME=/opt/OpenKM/ejre1.7.0_75/
      Bash:
      export JRE_HOME
      source /etc/environment
      
      # Zweryfikuj, czy JRE_HOME została prawidłowo dodana
      printenv | grep JRE_HOME

    7. Test pierwszego uruchomienia serwera OpenKM
      Bash:
      # Uruchomienie serwera Tomcat
      /opt/OpenKM/tomcat/bin/catalina.sh start
      
      # Podgląd logu (najlepiej w osobnym SSH lub screenie)
      tail -f /opt/OpenKM/tomcat/logs/catalina.out

      Adres do zalogowania z przeglądarki:
      http://[adres_qnapa]:9080/OpenKM
      login: okmAdmin
      hasło: admin

    8. Utwórz usługę serwera OpenKM
      Bash:
      # Utwórz użytkownika systemu odpowiedzialnego za uruchomienie serwera (bez podawania hasła)
      adduser openkm
      
      # Nadaj uprawnienia użytkownikowi openkm
      chown -R --from=root openkm /opt/OpenKM/tomcat
      
      # Edytuj konfigurację usługi
      vim /etc/init.d/openkm
      Wklej całą zawartość poniższego skryptu:
      Bash:
      #!/bin/sh
      ### BEGIN INIT INFO
      # Provides:          openkm
      # Required-Start:    $remote_fs $syslog
      # Required-Stop:     $remote_fs $syslog
      # Default-Start:     2 3 4 5
      # Default-Stop:      0 1 6
      # Short-Description: Start and stop OpenKM
      # Description:       Enable Apache Tomcat (OpenKM) service provided by daemon.
      ### END INIT INFO
      ECHO=/bin/echo
      TEST=/usr/bin/test
      TOMCAT_USER=openkm
      TOMCAT_HOME=/opt/OpenKM/tomcat
      TOMCAT_START_SCRIPT=$TOMCAT_HOME/bin/startup.sh
      TOMCAT_STOP_SCRIPT=$TOMCAT_HOME/bin/shutdown.sh
      $TEST -x $TOMCAT_START_SCRIPT || exit 0
      $TEST -x $TOMCAT_STOP_SCRIPT || exit 0
      
      start() {
          $ECHO -n "Starting OpenKM (Tomcat)"
          su - $TOMCAT_USER -c "$TOMCAT_START_SCRIPT &"
          $ECHO "."
      }
      stop() {
          $ECHO -n "Stopping OpenKM (Tomcat)"
          su - $TOMCAT_USER -c "$TOMCAT_STOP_SCRIPT 60 -force &"
          while [ "$(ps -fu $TOMCAT_USER | grep java | grep tomcat | wc -l)" -gt "0" ]; do
              sleep 5; $ECHO -n "."
          done
          $ECHO "."
      }
      case "$1" in
          start)
              start
              ;;
          stop)
              stop
              ;;
          restart)
              stop
              sleep 30
              start
              ;;
          *)
              $ECHO "Usage: openkm {start|stop|restart}"
              exit 1
      esac
      exit 0
      Zapisz plik i wykonaj kolejne polecenia:
      Bash:
      # Nadaj odpowiednie uprawnienia na usługę
      chmod 755 /etc/init.d/openkm
      
      # Ustaw poziomy uruchamiania usługi
      update-rc.d openkm defaults
      
      # Uruchom usługę
      service openkm start
  7. Za pomocą klienta SSH (np. PuTTY) zaloguj się do QNAPa (nie do instalacji Natywnego Debiana) i wykonaj poniższe polecenia w celu uruchamiania usługi openkm po każdym restarcie serwera
    Bash:
    vim /share/HDA_DATA/debpool/squeeze/env.init
    Do tablicy SERVICES dopisać 'openkm'
Mam nadzieję, że o niczym nie zapomniałem hmmm.
Powodzenia :Dumny:
 

Załączniki

  • libsigar-arm-linux.tar.gz
    82,2 KB · Wyświetleń: 75
Modyfikacja instrukcji na bazie x86 (prawdopodobnie tak samo będzie w ARM, ale nie przetestowałem tego jeszcze).

Zamiast p.2 i p.3. wykonać komendy:
Kod:
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
apt-get update
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
apt-get install oracle-java8-installer
java -version

Po zainstalowaniu JDK nie należy wówczas wykonywać p.6 z instrukcji wyżej.

P.4 dla platformy x86 jest "libsigar-x86-linux.so".

Pozostałe elementy instalacji bez zmian na ARM, a w x86 nie wykonujemy jeszcze p. 6.3.
 
Zamiast p.2 i p.3. wykonać komendy:
  • apt-get update
  • echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
  • apt-get install oracle-java8-installer
  • java -version
Po zainstalowaniu JDK nie należy wówczas wykonywać p.6 z instrukcji wyżej.
Na stronie OpenKM widnieje informacja, że OpenKM wymaga JAVA v6 lub v7. Wg tego co opisałeś, instalujesz JAVA v8, co może powodować pewne problemy. Kiedyś uruchomiłem OpenKM na JAVA v8, ale miałem później z nią jakieś problemy. Dlatego zainstaluj sobie JAVA v7:
Bash:
apt-get install oracle-java7-installer
.
 
Co prawda nie zauważyłem niczego podejrzanego z wersją 8 w działaniu, ale masz rację, takie są zalecenia. Przeinstalowałem.
Miałem nadzieję że na v7 zacznie szybciej działać synchronizacja wykonywana za pomocą OpenKMDesktopSync, ale zawiodłem się.
Nie wiem co on tak długo robi.
Do testów wrzucam 1 folder, 3 pliki (tesktowy, doc, xls) i synchronizacja w sieci lokalnej 1000Base-T 1min 20s. MAKABRA ! A pracuję na TS809Pro.