Dies ist eine alte Version des Dokuments!
Diese Anleitung beschreibt die Installation des FH-Complete Core. In diesem Setup wird davon ausgegangen, dass sich die Datenbank auf einem eigenen Server befindet.
Die Installation setzt folgende Infrastruktur voraus:
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.
Zuerst installieren wir den Apache Webserver
apt install apache2
und die PHP Pakete
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
Zusätzliche Tools installieren
apt install vim zip
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.
# You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example server ts.example.com
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:
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
.... 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.
# 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
PrivateTmp=false
systemctl daemon-reload systemctl restart apache2
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
host ldap.example.com base dc=example,dc=com
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
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
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
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