Benutzer-Werkzeuge

Webseiten-Werkzeuge


fhc:installation

Dies ist eine alte Version des Dokuments!


zurück zur Übersicht

FH-Complete Server Installation

Diese Installationsanleitung befindet sich noch im Aufbau

Diese Anleitung beschreibt die Installation des FH-Complete Core. In diesem Setup wird davon ausgegangen, dass sich die Datenbank auf einem eigenen Server befindet.


Voraussetzungen

Die Installation setzt folgende Infrastruktur voraus:

  • LDAP Server (ldap.example.com)
  • Mail Server (mail.example.com)
  • Storage
  • PostgreSQL Server (db.example.com)
  • Der Server selbst ist unter (fhcomplete.example.com) erreichbar

Grundinstallation

Ausgangsbasis für die Installation ist eine Standardinstallation von Debian 9 Stretch. Die folgenden Befehle für die Installation werden als root User ausgeführt.

Installation des Apache Webservers

apt install apache2

Installation der erforderlichen PHP Pakete

ab PHP 7

apt install php7.0 php7.0-xsl php7.0-gd php7.0-pgsql php7.0-ldap php7.0-mcrypt php7.0-mbstring php7.0-soap php7.0-curl

bis PHP 5

Module installieren

apt-get install php5-xsl php5-gd php5-pgsql php5-ldap php5-mcrypt

Anpassung der Konfigurationsdatei unter PHP 5

register_globas = Off
magic_qoutes_gpc = Off
short_open_tags = Off
asp_tags = Off
upload_max_filesize = 15MB
pgsql.allow_persistent = On
output_buffering = 4096


Zusätzliche Tools installieren

apt install vim zip

Soll die Datenübernahme von einem MSSQL Server erfolgen, muss zusätzlich folgendes Paket installiert werden:

apt-get install php5-sybase 


NTP - Zeitsynchronisation

Die Uhrzeit sollte auf allen FH-Complete Servern annähernd die selbe sein. Deshalb sollte diese mit NTP synchron gehalten werden.

apt-get install ntp

In der Datei /etc/ntp.conf wird dann ein Timeserver hinzugefügt.

/etc/ntp.conf
# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
server ts.example.com


Apache einrichten

HTTPS aktivieren

Um die HTTPS Verschlüsselung zu aktivieren benötigen wir das Server Zertifikat und den dazu passenden private Key. Den private Key speichern wir unter /etc/ssl/private/fhcomplete.key und das Zertifikat unter /etc/ssl/certs/fhcomplete.pem Nähere Informationen zu den Zertifikaten gibt es hier

Mit folgendem Befehl aktivieren wir SSL im Apache

a2enmod ssl
systemctl restart apache2

Wir kopieren das default-ssl Config und passen dort die Zertifikatspfade entsprechend an:

cd /etc/apache2/sites-available/
cp default-ssl.conf fhcomplete-ssl.conf

In der neu erstellten fhcomplete-ssl.conf muss der Pfad zu den Zertifikaten angegeben werden:

/etc/apache2/sites-available/fhcomplete-ssl.conf
   SSLCertificateFile      /etc/ssl/certs/fhcomplete.pem
   SSLCertificateKeyFile /etc/ssl/private/fhcomplete.key

Mit folgendem Befehl aktivieren wir die Konfiguration

a2ensite fhcomplete-ssl.conf
systemctl reload apache2

Nachdem die SSL Verbindung funktioniert richten wir einen Redirect von HTTP auf HTTPS ein. Dazu editieren wir die Datei /etc/apache2/sites-enabled/000-default.conf

/etc/apache2/sites-enabled/000-default.conf
....
        DocumentRoot /var/www/html
        Redirect permanent / https://fhcomplete.example.com
....

In der fhcomplete-ssl.conf richten wir einen Caldav Redirect ein sofern die Caldav Schnittstelle verwendet werden soll. Zusätzlich setzen wir die Option AllowOverride und setzen die Environment Variable für Codeigniter.

/etc/apache2/sites-enabled/fhcomplete-ssl.conf
# Redirect für Caldav einrichten. Beim Einrichten des Caldav Clients ist es dadurch nicht nötig die volle URL
# Anzugeben sondern lediglich den Hostnamen
Redirect permanent /.well-known/caldav /webdav/lvplan.php/
 
<Directory /var/www/html/>
    Options Indexes FollowSymLinks MultiViews
 
    # AllowOverride auf AuthConfig und Limit setzen damit die Authentifizierung über .htaccess
    # Dateien funktioniert
    AllowOverride AuthConfig Limit
    Order allow,deny
    allow from all
 
    # Environment fuer Codeigniter auf production setzen
    SetEnv CI_ENV production
 
</Directory>         

Damit die Änderungen übernommen werden starten wir den Apache neu:

systemctl restart apache2

Private Temp deaktivieren - Damit Apache mit Systemd kein eigenes /tmp Verzeichnis erstellt muss das PrivateTmp deaktiviert werden da es sonst zu Problemen bei der Dokumentenerstellung kommt

cd /etc/systemd/system/
mkdir apache2.service.d
cd apache2.service.d
vim nopt.conf

Die Datei hat folgenden Inhalt

[Service]
PrivateTmp=false

Damit die Änderungen übernommen werde muss der Daemon und Apache startet werden.

systemctl daemon-reload
systemctl restart apache2


LDAP Anbindung

LDAP Modul in Apache aktivieren

a2enmod authnz_ldap
systemctl restart apache2

LDAP Utils installation

apt install ldap-utils

Anpassung der LDAP Config unter /etc/ldap/ldap.conf

/etc/ldap/ldap.conf
host ldap.example.com
base dc=example,dc=com

FH-Complete Installation

Zuerst stellen wir sicher dass Git und Composer installiert sind

apt install git composer

Danach laden wir den aktuellen FH-Complete Core und das LDAP Addon von GitHub.

cd /home/fhcomplete/
mkdir git
cd git
git clone https://github.com/FH-Complete/FHC-Core.git FHC-Core
git clone https://github.com/FH-Complete/FHC-AddOn-LDAP.git FHC-AddOn-LDAP

Und kopieren den aktuellen Stand in das Webserver-Verzeichnis

rsync -ruv /home/fhcomplete/git/FHC-Core/* /var/www/html/ --exclude=".git"
rsync -ruv /home/fhcomplete/git/FHC-AddOn-LDAP/* /var/www/html/addons/ldap/ --exclude=".git"

Danach laden wir die nötigen Zusatzmodule per Composer nach

cd /var/www/html
composer install

Um die htaccess Dateien zentral zu verwalten erstellen wir einen eigenen Ordner und verlinken die .htaccess Dateien mit symbolischen Links

mkdir /var/fhcomplete
mkdir /var/fhcomplete/htaccess
cd /var/fhcomplete/htaccess
vim .htaccess
vim .htaccessrdf
/var/fhcomplete/htaccess/.htaccess
AuthBasicProvider ldap
AuthName "FH Complete"
AuthType Basic
AuthLDAPURL "ldap://ldap.example.com:389/ou=People,dc=example,dc=com?uid?one?objectclass=posixAccount" STARTTLS
AuthLDAPGroupAttribute memberuid
AuthLDAPGroupAttributeIsDN Off
Require valid-user
/var/fhcomplete/htaccess/.htaccessrdf
Order deny,allow
Deny from all
Allow from 127.0.0.1
AuthBasicProvider ldap
AuthName "FH Complete"
AuthType Basic
AuthLDAPURL "ldap://ldap.example.com:389/ou=People,dc=example,dc=com?uid?one?objectclass=posixAccount" STARTTLS
AuthLDAPGroupAttributeIsDN Off
AuthLDAPGroupAttribute memberuid
require valid-user
satisfy any
cd /var/www/html/cis/private/
ln -s /var/fhcomplete/htaccess/.htaccess .htaccess

cd /var/www/html/vilesci/
ln -s /var/fhcomplete/htaccess/.htaccess .htaccess

cd /var/www/html/system/
ln -s /var/fhcomplete/htaccess/.htaccess .htaccess

cd /var/www/html/content/
ln -s /var/fhcomplete/htaccess/.htaccess .htaccess

cd /var/www/html/rdf/
ln -s /var/fhcomplete/htaccess/.htaccessrdf .htaccess

Damit die Installation der Extensions funktioniert müssen Schreibrechte für bestimmte Ordner gesetzt werden:

cd /var/www/html/

chgrp www-data application/tmp/ application/config/extensions/ application/controllers/extensions/ application/helpers/extensions/ application/hooks/extensions/ application/libraries/extensions/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/

chmod 775 application/tmp/ application/config/extensions/ application/controllers/extensions/ application/helpers/extensions/ application/hooks/extensions/ application/libraries/extensions/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/

Als nächstes erstellen wir die nötigen Konfigurationsdateien.

cd /var/www/html/config/
cp global.config-default.inc.php global.config.inc.php
cp vilesci.config-default.inc.php vilesci.config.inc.php

Im Vilesci Config müssen folgende Einträge zwingend angepasst werden:

define("DB_HOST","db.example.com");
define("DB_NAME","fhcomplete");
define("DB_PASSWORD","PASSWORT");

define('APP_ROOT','https://fhcomplete.example.com/');
define('XML_ROOT','https://fhcomplete.example.com/rdf/');

define("AUTH_SYSTEM", "auth_mixed");
define("AUTH_NAME","FH Complete"); // gleiche Bezeichnung wie AuthName im htaccess

define('LDAP_SERVER','ldap://ldap.example.com');
define('LDAP_BASE_DN','ou=People,dc=example,dc=com');
define('MAIL_DEBUG',''); // Entrag entfernen da sonst alle Mails an diese Addresse gesendet werden

Mailversand einrichten

Dokumentenerstellung einrichten

/var/www/wiki/data/attic/fhc/installation.1529665892.txt.gz · Zuletzt geändert: 2019/08/13 13:49 (Externe Bearbeitung)