Sie sind hier: Startseite / Download & Demo / Quick Install unter Ubuntu 16.04

Quick Install unter Ubuntu 16.04

  • Ubuntu 16.04 installieren
  • Folgende Pakete installieren:

 

apt-get install \
        libsasl2-dev python-dev libldap2-dev libssl-dev python-ldap python-pil \
        gettext git python-gobject-dev python-tz postgresql libreoffice libjpeg62 libjpeg62-dev\
        python-psycopg2 apache2 vnc4server python-pilkit python-reportlab python-matplotlib \
        gpm python3-pypdf2
  • Download WSDB-Install.tgz ..... and extract it unter /
  • User anlegen
adduser --home=/data/zope --no-create-home zope
  • Datenbank anlegen
sudo pg_dropcluster --stop 9.5 main
sudo pg_createcluster --locale de_AT.UTF-8 --start 9.5 main
su - postgres
createuser wsdb
createdb wsdb
psql wsdb <  wsdb.dump
# pg_hba.conf anpassen
cp ./templates/pg_hba.conf /etc/postgresql/9.5/main/
  • Apache konfigurieren
a2enmod rewrite
service apache2 restart
a2enmod proxy
service apache2 restart
a2enmod proxy_http
service apache2 restart
cp ./templates/admin.wsdb.conf /etc/apache2/sites-available/
a2ensite admin.wsdb.conf
service apache2 reload
  • Systemd konfigurieren 
cp ./templates/wsdb-libreoffice.service /etc/systemd/system/
cp ./templates/wsdb-zope.service /etc/systemd/system/

systemctl enable wsdb-libreoffice.service
systemctl enable wsdb-zope.service
systemctl start wsdb-zope.service
systemctl start wsdb-libreoffice.service

ln -s /data/zope/wsdb/bin/zopectl /etc/init.d/wsdb_zope
update-rc.d wsdb_zope defaults
ln -s /data/zope/wsdb/bin/libreoffice_server /etc/init.d/wsdb_libreoffice
update-rc.d wsdb_libreoffice defaults
  • Log Verzeichnisse anlegen
echo "Log Verzeichnisse anlegen"
mkdir /var/log/zope2.10/
mkdir /var/log/zope2.10/wsdb
chown -R zope:zope /var/log/zope2.10/
  • Rechte setzen
echo "Rechte setzen konfigurieren"
chown -R zope:zope /data/zope/
  • Zope neu starten
echo "WSDB starten"
service wsdb-zope restart
  • Zope-Managment-Interface

Im Zope muss das gettext utf8 exportiert werden, indem man ein eigenes gettext python script anlegt:

        translated_str = context.gettext_catalog(str_to_translate).encode('utf-8')

        return translated_str

Achtung: View Anonymous für Login-Fenster!!!

WSDB/db_ws löschen und mit gleichen Einstellungen wieder anlegen

Dann muss man auch noch das py_search script vom utf8 encoding befreien, sonst gibt es Fehler bei Umlauten

  • XMLRPC-Script


Nun geht es weiter mit dem xmlrpc_server script

zuerst mit 2to3 ändern:

2to3 -w xmlrpc_server.py

dann die Tabs ändern:

/data/zope/bin/python /data/src/Python-2.4.5/Tools/scripts/reindent.py  xmlrpc_server.py
aus xmlrpc_server skript alle utf8 encoding und decodings entfernen

import string entfernen - das ist deprecated

Sonderzeichen direkt einfügen Euro und square

bei der Methode create_watermark file(...) mit open(...) ersetzen - wird in Python3 nicht unterstützt

Error logging eingefügt (siehe beispiel im xmlrpc_server - Klassenliste)

Decoding muss Server seitig geänder werden:

    def decode(self, code):
        if code == None or code == '':
            return None
        dump = binascii.a2b_base64(code)
        return pickle.loads(dump, encoding='utf-8')

wenn nicht, dann kommt ein TypeError: 'str' object is not callable

ToDo: Alle Funktionen durchgehen und Loggin einbauen - siehe als Vorlage:

    def create_adressliste_klasse(self, parameter):
        try:
            return self.create_adressliste_klasse_exc(parameter)
        except Exception as e:
            log.error("exception: %s", e)
            log.error("%s", traceback.format_exc())
            log.error("%s", sys.exc_info()[0])
            return False

Einfach die Funktion in ..._exc unbenennen und eine neue Funktion (siehe oben)
einfügen

  • Reportlab installieren
 apt-get install python-reportlab

und alle anderen erforderlichen site-packages rüberkopieren (z.B. ldap)
root@x-wsdb:/usr/lib/python2.4/site-packages

  • Numpy 1.0.4 installiern (muss neu compilliert werden) / Matplotlib???
 /data/zope# mkdir .matplotlib
/data/zope# chown -R zope:zope .matplotlib/

apt-get install python-matplotlib

damit alle abhängigkeiten installiert sind. Für Bananapi muss man nochmals /data/src/matplotlib-0.9.2 compillieren (Änderungen sind schon auskommentiert) - einfach setup.py build und install ausführen.

  • Next Step: Installation auf BananaPI mit exakter Doku???


- Sachen compillieren (python und Extensions)
- Pakete installieren
- Ein gesamtes Tar drüber spielen

  • Start/Stop Script mit systemd
 Script aus templates nach /etc/systemd/system kopieren

systemctl daemon-reload
systemctl start service.name
systemctl status plone.service
 systemctl enable service.name

postgresql.service
  • DNS-Einträge und Gateway für Zugang von außen vorbereiten
  • CUPS einrichten

Vom alten System die Druckertreiber sichern:

 /etc/cups/ppd/*

Alle Dateien auf lokalen Rechner kopieren
Cups am alten System öffnen

 ssh root@x-wsdb -L 9999:localhost:631

https://localhost:9999
Unter "Drucker" sieht man alle eingerichteten Drucker

Am neuen System:
CUPS installieren

 apt install cups
apt-get install cups-bsd
ssh root@fwl-wsdb01 -L 8888:localhost:631

https://localhost:8888

Jetzt für jeden benötigten Drucker am neuen System (https://localhost:8888):
Verwaltung -> Füge Drucker hinzu
Drucker werden wahrscheinlich dann schon angzeigt.
Drucker auswählen, selben Namen wie im alten System festlegen.
Im nächsten Schritt wo Hersteller und Modell zum Auswählen sind und den Punkt
"Stelle eine PPD Datei zur Verfügung" wählen und mittels "Durchsuchen" die jeweilige PPD Datei vom alten System auswählen.
Drucker hinzufügen.
Druckereinstellungen mit altem System vergleichen, sollten aber alle durch die PPD automatisch übernommen worden sein.

  • Alle verwendeten Schriften unter /usr/share/fonts hinterlegen
  • in der postgresql.conf die folgenden Werte erhöhen
    shared_buffers = 256MB
    max_locks_per_transaction = 128
    max_pred_locks_per_transaction = 128

    und außerdem autovacuum = on
  • Crontab-Einträge für DB-Dump:
vi /etc/crontab:

15 19 * * *     root    vacuumdb -zq -U postgres wsdb
00 * * * *      root    pg_dumpall -U postgres >/data/backup/dbdump.`date +\%H`.sql
00 03 * * *     root    rm /data/zope/wsdb/zeugnismuster/* > /dev/null 2>&1
00 03 * * *     root    rm /data/zope/wsdb/stundenplaene_pdf/* > /dev/null 2>&1
00 03 * * *     root    rm /data/zope/wsdb/files/adresslisten/* > /dev/null 2>&1
00 03 * * *     root    rm /data/zope/wsdb/files/statistik/* > /dev/null 2>&1
  • Klassenbuch am Beispiel kss
  • kss-apache01:
    Basisverzeichnis Klassenbuch: /opt/usr/WSDB_Klassenbuch/

    ./webapp/js/Config.js:
    config.constant('API_URL', 'http://klassenbuch.kssw.local');

    ./ECBW/ECBW/settings.py
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': 'wsdb',
            'USER': 'postgres',
            'PASSWORD': '',
            'HOST': 'kss-wsdb02'
        }
    }
    ...
    AUTHENTICATION_URL = ("http://admin.kssw.local/WSDB/klassenbuch_login")

    NFS Mount für Bilder:
    /etc/fstab:
    kss-wsdb02:/data/zope/wsdb/foto/ /mnt/wsdb_foto/ nfs rw,nolock,noatime,addr=192.168.1.228 0 0
    die IP Adresse ist die eigene IP, also von kss-wsdb02

    Wenn auf der wsdb02 noch nicht konfiguriert (Achtung: Auf der ...-wsdb02 ausführen!):
    apt-get install nfs-kernel-server

    /etc/exports:
    /data/zope/wsdb/foto/   192.168.1.227/32(rw,no_root_squash,sync,no_subtree_check)
    die IP Adresse ist die IP des kss-apache01

    service nfs-kernel-server restart

    Ev. noch pg_hba.conf für Verbindung auf wsdb02 (Klassenbuch, Sympa) anpassen:
    IP Adresse von kss-apache01 mit ifconfig abfragen (z.B. 192.168.1.227) und als trust den Range eintragen:
    host    all             all             192.168.1.0/8           trust

    Dann auf kss-apache01:
    mount -a
    nun sollte bei mount eine Zeile kss-wsdb02:/data/zope/wsdb/foto/ on /mnt/wsdb_foto ... vorhanden sein

    Dann noch für die Änderungen beim Klassenbuch:
    service apache2 reload