Administratordokumentation - gnuheidix/api.piratenpartei-bw.de GitHub Wiki

Auf dieser Seite sind Einrichtung, Betrieb und Update der Applikation beschrieben.

Einrichtung

Derzeit wird zum fehlerfreien Ausführen dieser Applikation folgendes benötigt:

  • Apache Webserver mit mod_rewrite und mod_php5
  • mindestens PHP 5.2.8
  • mindestens MySQL 4

Prinzipiell sollte es auch auf anderen Webservern als Apache funktionieren, jedoch wird hier in den meisten Fällen das manuelle Anpassen der mod_rewrite Anweisungen an die vom jeweiligen Webserver verwendete Syntax erforderlich sein.

Herunterladen

Als erstes müssen alle in diesem Repository hinterlegten Dateien in ein beliebiges, über den Webserver erreichbares, Verzeichnis kopiert werden. Hierzu kann entweder der gezippte Download oder git verwendet werden. Das Auschecken via git ist hierbei jedoch stark zu empfehlen, da so auch spätere Updates kein Problem darstellen werden:

git clone "git://github.com/gnuheidix/api.piratenpartei-bw.de.git"

Nachdem die Daten in einem über das Netz erreichbaren Verzeichnis untergebracht sind müssen noch einige weitere Schritte durchgeführt werden.

Webserver

Das folgende Beispiel dient nur als Anhaltspunkt, wie die vHost-Einstellung in Apache konfiguriert werden muss. Der Pfad muss nicht gegen app/webroot gehen, es ist aber (sicherheits)technisch besser.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /path/to/api.piratenpartei-bw.de/app/webroot
    <Directory /path/to/api.piratenpartei-bw.de/app/webroot>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Bitte prüfen, dass das Modul rewrite aktiviert ist. sudo a2enmod rewrite

Konfigurationsdateien

  • Die Datei app/Config/database.php.default nach app/Config/database.php kopieren und mit den eigenen Datenbankzugangsdaten versehen.
  • Die Datei app/Config/core.php.default nach app/Config/core.php kopieren und dort die Werte der Schlüssel debug, Security.salt und Security.cypherSeed anpassen.
  • Die Datei app/Config/config.php.default nach app/Config/config.php kopieren.

In der Konfigurationsdatei unter app/Config/config.php muss in Zeile Nr. 8 die Baseurl auf den Pfad des Unterverzeichnisses relativ zum Webroot abgeändert werden. Liegt die Software direkt im Webroot kann die Standardeinstellung "/" verwendet werden - liegt die Software beispielsweise im Unterverzeichniss "api.piratenpartei-bw.de" lautet die korrekte Baseurl "/api.piratenpartei-bw.de/".

Datenbank

Die in app/Config/database.php angegebene Datenbank muss von Hand erstellt werden. Beispiel:

CREATE DATABASE api_piratenpartei_bw_de;

Es wird empfohlen der Applikation ein eigenes Benutzerkonto in DBMS einzurichten. Beispiel:

CREATE USER '<USERNAME>'@'localhost' IDENTIFIED BY '<PASSWORT>';
GRANT ALL PRIVILEGES ON <DATENBANKNAME>.* TO '<USERNAME>'@'localhost';

Als nächstes müssen die Temp-Verzeichnisse erstellt und Dateizugriffsrechte gesetzt werden. Das Skript createTempDirectory.sh bietet dabei Hilfestellung.

Als letztes müssen die benötigten Tabellen erstellt werden, hierzu reicht es folgende Befehle auf der Konsole auszuführen, wobei Warnungen aufgrund fehlender Schreibrechte auf die Cacheverzeichnisse in Ordnung gehen.

a@b:~/api.piratenpartei-bw.de/app$ ./Console/cake schema create WikiPages
a@b:~/api.piratenpartei-bw.de/app$ ./Console/cake schema create WikiElements
a@b:~/api.piratenpartei-bw.de/app$ ./Console/cake schema create Stammtisches
a@b:~/api.piratenpartei-bw.de/app$ ./Console/cake schema create GeoCoordinates

Anleitung sichern

Für den Fall, dass github bei einer Störung dieser Applikation nicht erreichbar ist, bietet es sich an bei der Installation die Inhalte dieses Wikis herunterzuladen. Beispiel:

git clone git://github.com/gnuheidix/api.piratenpartei-bw.de.wiki.git

Cronjob einrichten

Damit Benutzer beim Abruf von bereits einmal angeforderten und inzwischen veralteten Inhalten nicht auf deren erneute Aktualisierung von der Datenquelle warten müssen, ist es ratsam einen Cronjob einzurichten. Dessen Aufgabe ist es, die Aktualisierung der Inhalte unabhängig von Benutzeranfragen durchzuführen.

Der Cronjob-Zeitintervall muss dabei wesentlich kleiner sein als der Wert System.autoupdateage in app/Config/config.php, da die Aktualisierung der abgefragten Inhalte teilweise während der Benutzerrequests stattfindet. Der Cronprozess wird durch die Ausführung des Skripts app/Console/cron.php gestartet. Diesem können die folgenden Parameter mitgegeben werden.

  • debug - detaillierte Ausgabe, welche Inhalte abgefragt und verarbeitet werden
  • querycount - Ausgabe der Anzahl der SQL-Queries

Beispielaufruf:

heidi@anna:~/workspace$ php api.piratenpartei-bw.de/app/Console/cron.php querycount
SQL-Queries: 381

Betrieb

  • Sollten einmal Inhalte im Speicher der Applikation liegen, die irgendjemand stört, brauchen lediglich sämtliche Tabellen geleert werden.
  • Wenn die Applikation in app/Config/core.php im Debugmode 0 (Produktion) läuft, werden sämtliche Datenbankzugriffe in app/tmp/cache/models und app/tmp/cache/persistent gecacht.
  • Falls der Plattenspeicher, Netzwerktraffic, ... zu stark beansprucht wird, kann das Zwischenspeichern der Bilder in der app/Config/config.php deaktiviert werden. Wenn es aus ist, werden die Bilderpfade auf die Datenquelle gerichtet.

Update

  • Wenn die Installation mittels git-clone wie oben durchgeführt wurde, dann reicht git pull origin, wenn man im Wurzelverzeichnis der Applikation steht.
    • Wenn die Codebasis seit dem letzten Update bzw. der Installation eigenmächtig angepasst wurde, sollte man die neue Version in einen neuen Branch pullen und in die eigene Codebasis mergen (lassen).
    • Wenn die Installation über das ZIP-Archiv durchgeführt wurde, ist Handarbeit angesagt. :-)
  • Die Schemaskripte aus dem Punkt Einrichtung-Datenbank ausführen.
  • Die Inhalte der Datei app/Config/config.php.default mit der app/Config/config.php vergleichen und neue Konfigurationspunkte übertragen.
  • Der Cache in app/tmp/cache/models und app/tmp/cache/persistent leeren.
  • Die Datei app/webroot/js/stammtisch/data.js leeren.
  • Wenn dieses Wiki bei den Einrichtung heruntergeladen wurde, in dessen Wurzelverzeichnis wechseln und ebenfalls git pull origin ausführen.
⚠️ **GitHub.com Fallback** ⚠️