Installation von ConfTool auf einem Shared Web Server

Sofern Sie keine Root-Rechte auf Ihrem Server haben, sind die folgenden Schritte erforderlich, um ConfTool auf einem Shared Web Server zu installieren.

Tipp: Der einfachste und empfohlene Weg, ConfTool zu installieren, ist unser Installer – siehe Installation mit dem Installer. Verwenden Sie die nachfolgend beschriebene manuelle Installation nur, wenn Sie sie für Ihre Shared-Hosting-Umgebung tatsächlich benötigen.

Bitte beachten Sie: Auf Shared Servern kann es zu Problemen beim Versand von E-Mails oder beim Hochladen (großer) Dateien kommen. Zudem hat Ihr Provider möglicherweise einige PHP-Optionen eingeschränkt. Ist dies der Fall, wenden Sie sich bitte an Ihren Provider.

Die folgende Beschreibung bezieht sich auf den Webhoster Strato. Einige Punkte können sich bei Ihrem Webhoster unterscheiden, da jeder Anbieter andere technische Spezifikationen hat.

  1. Erfragen Sie unter requests@conftool.net eine ConfTool-Lizenz und laden Sie die Installationsdateien herunter. Entpacken Sie diese (z. B. mit 7-Zip). Folgende sieben Ordner sollten im entpackten Verzeichnis enthalten sein: classes, etc, htdocs, install, lib, pages, uploads.
  2. Loggen Sie sich bei Ihrem Webhoster ein und erstellen Sie für Ihre ConfTool-Installation eine MySQL-Datenbank. Notieren Sie sich den Datenbanknamen, den Datenbank-Benutzernamen und das Passwort. Diese Angaben werden später für die Hauptkonfigurationsdatei etc/conftool.conf.php benötigt (siehe Schritt 10). Sollte Ihr Webhoster keine MySQL-Schnittstelle bereitstellen, beachten Sie bitte Hinweis A.
  3. Loggen Sie sich über das Backend Ihres Webhosters in phpMyAdmin ein und öffnen Sie die eben erstellte Datenbank. Kopieren Sie die Inhalte der Dateien install/initdb.sql (erzeugt die benötigten Tabellen) und install/defaultdata.sql (füllt die Tabellen mit Standarddaten) und fügen Sie diese jeweils in das SQL-Feld der Datenbank ein.
  4. Greifen Sie nun mit einem SFTP-Programm auf das Webverzeichnis zu, in dem Sie ConfTool installieren möchten. Erstellen Sie hier zwei Ordner:
    • Ein Verzeichnis soll öffentlich zugänglich sein – wir nennen es im Folgenden das „öffentliche" Verzeichnis. Geben Sie ihm einen eindeutigen Namen, z. B. conftool.
    • Das andere Verzeichnis soll öffentlich nicht zugänglich sein – wir nennen es das „versteckte" Verzeichnis. Dies kann z. B. das Home-Verzeichnis Ihres SFTP-Zugangs sein. Ist dieses öffentlich zugänglich, erstellen Sie ein zweites Verzeichnis, z. B. conftool_hidden, und schützen Sie es durch eine .htaccess-Datei mit der folgenden Zeile:

      Require all denied

      Ist der Zugriff über den Webbrowser dennoch möglich, verwenden Sie stattdessen ein Verzeichnis mit einem zufälligen, nicht zu erratenden Namen (z. B. ct34p58972p93845).

  5. Kopieren Sie den Inhalt des Ordners conftool/htdocs in Ihren „öffentlichen" Ordner und behalten Sie dabei die Ordnerstruktur bei. Die Dateien index.php, imprint.php usw. sollten nun direkt über Ihren Webbrowser aufrufbar sein. Da die Installation noch unvollständig ist, erhalten Sie beim Aufruf zunächst eine Fehlermeldung.
  6. Benennen Sie in Ihrem „öffentlichen" Ordner die Datei phpinfo.ph_ in phpinfo.php um und die Datei info.ph_ in info.php. Rufen Sie nun mit Ihrem Webbrowser die Datei phpinfo.php auf. Die URL sollte etwa so aussehen:

    www.mydomain.com/conftool/phpinfo.php

    Diese Seite gibt einen Überblick über die installierte PHP-Version. Suchen Sie nach dem Parameter DOCUMENT_ROOT (mit Strg + F öffnen Sie im Browser die Suche). Der zugehörige Eintrag sollte etwa so aussehen:

    /home/strato/http/premium/1234567/htdocs

    Fehlt der Parameter DOCUMENT_ROOT, beachten Sie bitte Hinweis B. Abgeleitet vom genannten Beispiel lauten die Pfade des „öffentlichen" und des „versteckten" Verzeichnisses dann:

    /home/strato/http/premium/1234567/htdocs/conftool/ 
    /home/strato/http/premium/1234567/htdocs/conftool_hidden/

    Diese Angaben brauchen Sie später noch.

  7. Kopieren Sie mit Ihrem SFTP-Programm die Ordner etc, lib, classes, pages und uploads in Ihren „versteckten" Ordner. Erhalten Sie auch hier die Ordnerstruktur.
  8. Der Ordner conftool_hidden/uploads benötigt vollen Schreibzugriff, damit hochgeladene Dateien dort gespeichert werden können. Der Schreibzugriff lässt sich per SFTP-Programm einrichten (z. B. durch chmod 777 uploads oder per Rechtsklick „Ordner-Einstellungen…" und Schreibzugriff für alle erlauben – die genaue Bezeichnung hängt vom SFTP-Programm ab). Siehe Hinweis C.
  9. Öffnen Sie in Ihrem „öffentlichen" Ordner die Datei settings.php und fügen Sie Folgendes hinzu:

    <?php 
    ini_set('include_path','/home/strato/http/premium/1234567/htdocs/conftool_hidden/etc'); 
    ?>

    Siehe Hinweis D.

  10. Bearbeiten Sie nun die Hauptkonfigurationsdatei etc/conftool.conf.php Ihrer ConfTool-Installation:

    • Das „prefix"-Verzeichnis ist das versteckte Verzeichnis Ihrer Installation, z. B.:

      $ctconf['paths/prefix'] = '/home/strato/http/premium/1234567/htdocs/conftool_hidden';

    • Die relativen Verzeichnisse (z. B. $ctconf['paths/etc'] = 'etc/';) bleiben unverändert.
    • Tragen Sie den Hostnamen Ihres Datenbankservers ein (z. B. rdbms.strato.de).
    • Tragen Sie den Namen der Datenbank, den MySQL-Benutzernamen und das Passwort ein (siehe Schritt 2).
    • Richten Sie schließlich die Parameter des SMTP-Servers für den E-Mail-Versand ein. Normalerweise genügen die Standardparameter (localhost); manchmal müssen Sie die Login-Daten eines externen SMTP-Servers angeben.

    Alle weiteren Parameter sind in der Datei dokumentiert; ausführlichere Informationen finden Sie in der Installationsanleitung.

  11. Fahren Sie nun mit der Konfiguration fort. Siehe:
  12. Eine gute Möglichkeit, Ihre Konfiguration zu überprüfen, ist der Aufruf von:

    www.mydomain.com/conftool/info.php

    Diese Seite prüft alle relevanten Einstellungen und gibt Ihnen viele Hinweise. Sie sollten alle Fehlermeldungen und – wenn möglich – auch die Warnmeldungen prüfen und beheben.

  13. Unter folgender Adresse können Sie nun Ihre ConfTool-Installation aufrufen:

    www.mydomain.com/conftool/

    Wenn die Login-Seite erscheint, funktioniert Ihre Installation. Löschen Sie jetzt aus Sicherheitsgründen die Dateien phpinfo.php und info.php. Mit dem Standard-Benutzernamen admin und dem Passwort admin können Sie sich einloggen. Vergessen Sie nicht, das Passwort nach dem ersten Login zu ändern.

Hinweise

Hinweis A (zu Schritt 2)

Wenn Ihr Hosting-Provider keine MySQL-Webschnittstelle bereitstellt, empfehlen wir, phpMyAdmin auf dem Server zu installieren. Dieses Programm ist z. B. für die Erstellung der Datenbank, den Datenexport und Backups nützlich. Weitere Informationen finden Sie unter phpmyadmin.net. Ihr phpMyAdmin-Verzeichnis muss durch Benutzername und Passwort geschützt oder in einem nicht zu erratenden Verzeichnis installiert sein.

Hinweis B (zu Schritt 6)

Fehlt der Parameter DOCUMENT_ROOT, schauen Sie nach ORIG_PATH_TRANSLATED, wo Sie den Namen des aktuellen Skripts auf dem Server finden. Er sollte etwa so aussehen: C:\web\example.org\htdocs\conftool\info.php. Der Pfad (DOCUMENT_ROOT) lautet dann: C:\web\example.org\htdocs\.

Hinweis C (zu Schritt 8)

Bei einigen Providern müssen Sie das Dateiverwaltungsprogramm des Webservers verwenden, um die Berechtigungen festzulegen. Arbeitet Ihr Provider mit Windows-Servern, müssen Sie diesen Schritt eventuell vom Server-Administrator ausführen lassen.

Hinweis D (zu Schritt 9)

Die in Schritt 9 gezeigte Methode (ini_set() in settings.php) funktioniert unabhängig davon, wie PHP betrieben wird. Alternativ können Sie auf den meisten aktuellen Shared-Hosts – bei denen PHP über PHP-FPM oder FastCGI läuft – den Include-Pfad über eine .user.ini-Datei in Ihrem „öffentlichen" Ordner festlegen:

include_path = "/home/strato/http/premium/1234567/htdocs/conftool_hidden/etc"

Läuft PHP bei Ihrem Hoster noch als Apache-Modul (mod_php), können Sie stattdessen eine .htaccess-Datei verwenden:

DirectoryIndex index.php php_value include_path "/home/strato/http/premium/1234567/htdocs/conftool_hidden/etc"

Beachten Sie, dass php_value nur mit mod_php funktioniert; unter PHP-FPM/FastCGI führt es zu einem Serverfehler – verwenden Sie dort eine .user.ini-Datei. Rufen Sie anschließend info.php im Browser auf, um zu prüfen, ob die Einstellungen wirken.

Funktioniert keine dieser Methoden, bietet Ihr Provider eventuell ein Webinterface, in dem Sie solche PHP-Parameter einstellen können. Fragen Sie andernfalls Ihren Provider, wie der PHP-Parameter include_path gesetzt werden kann, oder bitten Sie ihn, dies für Sie zu tun.

Häufige Probleme

  1. Die Datei .htaccess wird nicht geparst oder verursacht Fehlermeldungen? Diese Datei funktioniert nur unter Apache, ihre Verwendung kann aber durch die Serverkonfiguration unterdrückt sein. → Verwenden Sie stattdessen die Datei settings.php in Ihrem „öffentlichen" Ordner oder die PHP-Einstellungsseite Ihres Providers.
  2. Statt der Anmeldeseite wird der Inhalt des öffentlichen Ordners angezeigt? Dann gibt es keine index.php in Ihrem Wurzelverzeichnis. Sie können diese per DirectoryIndex index.php zu Ihrer .htaccess-Datei hinzufügen. Funktioniert das nicht, verlinken Sie von Ihrer Konferenzwebsite direkt auf das Installationsverzeichnis.
  3. Probleme bei der Registrierung neuer Benutzer (z. B. sehr lange Verzögerungen oder es wird keine E-Mail-Adresse angenommen)? Möglicherweise funktioniert die DNS-Abfrage zur Überprüfung von E-Mail-Adressen nicht. → Deaktivieren Sie diese Option in der Datei conftool.conf.php: $ctconf['mail/checkdns'] = false; // Default is true.
  4. Sie können keine Dateien hochladen? Möglicherweise hat der Ordner uploads keinen Schreibzugriff. Passen Sie die Zugriffsrechte mit Ihrem SFTP-Programm an (siehe Schritt 8).
  5. Der E-Mail-Versand klappt nicht? Prüfen Sie, ob die SMTP-Server-Einstellungen korrekt sind oder der Versand durch die Firewall des Servers blockiert wird. Kontrollieren Sie die Einträge in conftool.conf.php oder probieren Sie einen anderen SMTP-Server. Alternativ können Sie die Bibliothek „PHPMailer" deaktivieren und die eingebauten PHP-Mail-Funktionen verwenden: $ctconf['mail/phpmailer'] = false; // Default is true
  6. Beachten Sie für die Fehlersuche auch das Fehlerprotokoll Ihres Webservers.

Weitere Hinweise: Technische FAQ und Sicherheitshinweise