Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Was fehlt?

Es liegt in der Natur der Sache: Ein Wiki ist niemals fertig. Wir geben uns große Mühe, mit der Entwicklung Schritt zu halten; lassen Supportanfragen direkt in neue Artikel einfließen … aber auch wir sind nicht perfekt. Wenn du hier nicht fündig wirst: Nicht schmollen - Bescheid sagen! Unter hallo@uberspace.de steht dir unser Team gerne bereit. Hand drauf!

cool:openphoto

openphoto

OpenPhoto ist leider in jüngeren Versionen nicht mehr mit dem Hosting auf Uberspace.de kompatibel. Der Grund dafür liegt darin, dass es seit einiger Zeit zwingend die Funktionalität benötigt, Trigger in der MySQL-Datenbank anlegen zu können. Das ist bei uns allerdings nicht möglich, da wir MySQL als Master-Slave-Setup betreiben, um konsistente MySQL-Backups erstellen zu können, ohne dabei den produktiven MySQL-Server stoppen bzw. locken zu müssen. In diesem Setup aber deaktiviert MySQL die Möglichkeit, Trigger ohne administrative Rechte anlegen zu können. In der Folge schlägt die Installation von OpenPhoto damit nun leider fehl; ein Workaround dafür ist uns leider nicht bekannt.

openphoto ist eine webbasierte Applikation zur Fotoverwaltung, die sich sowohl an Cloud-Dienste wie Amazon S3 oder Dropbox anbinden lässt, aber die Fotos auch direkt im lokalen Dateisystem speichern kann. Die Installations-Dokumentation bezieht sich allerdings ausschließlich auf eigene Server, auf denen man root-Rechte hat - dabei ist eine Installation auch auf einem Uberspace problemlos möglich. Und nicht nur das: Es geht auch noch viel schneller.

PHP-Version kontrollieren

openphoto benötigt eine PHP-Version mit exif-Support, was bei uns ab PHP 5.3.10 der Fall ist. Du kannst dir einfach eine phpinfo-Seite anzeigen lassen, um zu schauen, ob das bereits der Fall ist. Das geht auch direkt auf der Shell:

[else@cosmo ~]$ php -i | grep ^exif$
exif

Wenn hier keine Ausgabe kommt, hast du noch kein PHP mit exif-Unterstützung. Du musst dann zunächst deine PHP-Version upgraden:

[else@cosmo ~]$ echo PHPVERSION=5.3.13 > ~/etc/phpversion
[else@cosmo ~]$ . /etc/profile.d/phpversion.sh
[else@cosmo ~]$ killall -u $USER php-cgi

openphoto installieren

Die eigentliche Installation ist schnell gemacht - mittels git besorgst du dir den aktuellen Source und packst ihn ins Verzeichnis /var/www/virtual/$USER/openphoto. Es ist wichtig, ein Verzeichnis unterhalb von /var/www/virtual/$USER zu benutzen und nicht in deinem Home-Verzeichnis /home/$USER, damit der Webserver darauf Zugriff hat. Es gehört aber nicht in den DocumentRoot, weil nur ein Teil der im Source enthaltenen Daten dorthin gehören - dazu kommen wir gleich. Erstmal den Source besorgen:

[else@cosmo ~]$ git clone git://github.com/openphoto/frontend.git /var/www/virtual/$USER/openphoto

Außerdem muss im Verzeichnis src ein Verzeichnis userdata angelegt werden …

[else@cosmo ~]$ mkdir /var/www/virtual/$USER/openphoto/src/userdata

… und selbst ein Verzeichnis cache anlegen (das macht openphoto zwar beim ersten Aufruf selbst, setzt dann aber die Rechte auf 700, so dass der Webserver das Verzeichnis nicht lesen kann …):

[else@cosmo ~]$ mkdir -m 755 /var/www/virtual/$USER/openphoto/src/html/assets/cache

Anbindung an den Webserver

OpenPhoto möchte zwingend direkt im DocumentRoot einer Website liegen; es gibt offenbar keinen (oder zumindest keinen offensichtlichen) Weg, es in einem Unterverzeichnis zu betreiben. Es gibt daher zwei Möglichkeiten:

Installation im Standard-DocumentRoot

Der Vorteil dieser Variante ist, dass du openphoto über unser Wildcard-TLS-Zertifikat via HTTPS benutzen kannst. Der Nachteil ist, dass du dann nichts anderes außer openphoto im Standard-DocumentRoot betreiben kannst. Wir benennen daher den bisherigen DocumentRoot in html.old um (du kannst ihn auch einfach komplett löschen, wenn sich dort keine relevanten Daten befinden) und verlinken das Verzeichnis openphoto/src/html, in dem die eigentliche Applikation liegt, als künftigen DocumentRoot:

[else@cosmo ~]$ cd /var/www/virtual/$USER
[else@cosmo ~]$ mv html html.old
[else@cosmo ~]$ ln -s openphoto/src/html .

Deine openphoto-Installation ist nun direkt über deinen Uberspace-Hostnamen via HTTPS erreichbar; im konkreten Beispiel also unter der URL https://else.cosmo.uberspace.de/.

Installation unter einer Subdomain

Der Vorteil dieser Variante ist, dass du den Standard-DocumentRoot für weitere Dinge freihalten kannst, in dem du eine separate Subdomain verwendest. Der Nachteil ist, dass du hier dann kein HTTPS verwenden kannst (sofern du uns kein eigenes auf den entsprechenden Hostnamen passendes TLS-Zertifikat lieferst, das wir für dich einbinden können). In diesem Beispiel gehen wir davon aus, dass du bereits die Domain else-muster.com auf deinem Uberspace hast aufschalten lassen

[else@cosmo ~]$ cd /var/www/virtual/$USER
[else@cosmo ~]$ ln -s openphoto/src/html fotos.else-muster.com

Anschließend musst du noch in der vorbereiteten .htaccess-Datei nach der Zeile RewriteEngine On eine RewriteBase-Zeile einfügen, zum Beispiel mit nano als Editor:

[else@cosmo ~]$ nano -w openphoto/src/html/.htaccess

Der betreffende Abschnitt sollte dann also so aussehen:

...
RewriteEngine on
RewriteBase /
RewriteRule \.ini$ - [F,NC]
...

Deine openphoto-Installation ist nun direkt über http://fotos.else-muster.com erreichbar.

Weiter geht's im Web

Rufst du openphoto nun im Browser auf, wirst du durch das webbasierte Setup geleitet. Hier sollten sich dir eigentlich keine großen Probleme mehr in den Weg stellen:

  1. Im ersten Schritt musst du deine Mailadresse hinterlegen und ein Theme auswählen. Es ist wichtig, dass du hier eine gültige E-Mail-Adresse angibst, denn openphoto benutzt ausschließlich das BrowserID-System zum Login. Wie du feststellen kannst, musst du während der Registrierung kein Passwort festlegen. Wenn du die Mailadresse, die du hier einträgst, bereits für BrowserID verwendest, kannst du dich künftig direkt damit einloggen, ansonsten wirst du beim ersten Login via BrowserID dessen „Passwort vergessen“-Funktion benutzen müssen, um dir einen Autorisierungslink per Mail zusenden zu lassen.
  2. Bei den Site Settings kannst du unter „Select Database“ den Wert „MySQL“ und unter „Select File System“ den Wert „Local filesystem“ auswählen. Solltest du Amazon S3 und/oder Dropbox mit einbinden wollen, kannst du das natürlich ebenfalls tun; das ist aber kein Bestandteil dieses Tutorials.
  3. Auf der folgenden Seite geht es dann noch um zwei Dinge:
    1. Im ersten Block musst du deine MySQL-Zugangdaten anlegen, die du deiner .my.cnf entnehmen kannst. Als Datenbankname kannst du deinen Uberspace-Usernamen verwenden; in diesem Fall solltest du einen Table prefix vergeben, z.B. „openphoto_“. Du kannst dir aber auch eine separate Datenbank nur für openphoto anlegen und hier dann ihren Namen angeben; den Table prefix kannst du dann leer lassen.
    2. Die local file system credentials kannst du belassen, wie sie sind.

Das war's schon - viel Spaß mit openphoto!

cool/openphoto.txt · Zuletzt geändert: 2014/12/09 16:54 von uber