PHP Upload-Einstellungen für OwnCloud mit OSX Server

Seit einiger Zeit betreibe ich auf meinem MacMini mit OSX Mavericks 10.9.2 und OS X Server 3.1.1  (Stand April 2014) eine eigene Cloud auf einem per Thunderbolt angebundenen 4TB-Laufwerk mittels der OpenSource-Software OwnCloud.

Die Software ist von den Features und von den Funktionen her recht simpel, dafür aber stabil, performant und in Anwendung und Administration ebenso einfach zu handhaben.
Bei den Grundeinstellungen gibt es ein paar Dinge zu beachten, wenn OwnCloud auf einem Mac mit ServerApp betrieben wird.
Auch wenn es ausreichen würde, ab Punkt 3 zu lesen, schaut Euch den ganzen Post an, um die Zusammenhänge und evtl. gegenseitigen Beeinflussungen von Mac OS X-Serversystem – php-Installation und OwnCloud zu verstehen. Damit lassen sich mögliche Fallstricke vermeiden und beheben, wenn bisherige Versuche vielleicht fehlgeschlagen sind …

1 – PHP.ini – wo denn bitte ?

Eines davon ist die Einstellung der Uploadgröße. Das ist ein Wert, der gewöhnlich über entsprechende Tags in der php.ini gesteuert wird.

Wer sie auf einem Mac mit Mavericks & OSX Server 3.x betreibt, wird sich sicher genau wie ich erst einmal einen Wolf suchen, um die php.ini zu finden, in der die Up-/Downloadgrößen eingestellt werden müssen.
Standardeinstellung sind hier leider php-seitig völlig unzureichende 2 Megabyte und im neuen OwnCloud 6.x gerne auch schonmal 512 MB  … ziemlich oldschool.

512MB

Klar – kann man ändern, dafür gibt es eben die folgenden Tags in der php.ini – das kann man dank Onkel Google überall nachlesen:

  • upload_max_filesize 
  • post_max_size
  • output_buffering

Nur finden müsste man die php.ini dafür …
Die Spotlight-Suche verrät dazu nichts, vor Allem weil sie die vor dem Normaluser versteckten Systemdateien nicht auflistet.
Wie man diese Ordner und Dateien sichtbar macht, dazu sei auf dieses kleine aber feine Tutorial verwiesen.

Es gibt einige Konsolenbefehle, um die php.ini ausfindig zu machen – der einfachste     php –ini     ergibt im Terminal abgesetzt das Folgende:

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /Library/Server/Web/Config/php
Additional .ini files parsed:      /Library/Server/Web/Config/php/php.ini

Es gibt also an zwei Stellen eine php.ini.

/etc/php.ini
Hier findet sich die php.ini der PHP-Installation auf dem Mac Server.

/Library/Server/Web/Config/php/php.ini
Diese php.ini ist eine Besonderheit bei einem Mac mit ServerAPP.
Die Einstellungen in dieser php.ini überschreiben die entsprechenden Einstellungen in der Standard-Ini.

2 – Rechtsauskunft

Welche der beiden Inidateien man editiert, ist Geschmacksache.
Man kann sie mittels Doppelklick öffnen und lesen, wird aber beim Abspeichern etwaiger Änderungen feststellen, dass sie offensichtlich schreibgeschützt sind.
Mit einem Rechtsklick auf die Datei bzw. den übergeordneten Pfad und der Auswahl der entsprechenden Rechte kann dem abgeholfen werden.
Dabei kann man die Rechte ruhig einmal für die kurze Zeit der Änderung der Einfachheit halber für Jeder auf schreiben setzen – nur sollte man dies natürlich nach erfolgreicher Änderung unbedingt auch wieder zurücksetzen !! Einen guten Überblick darüber, wie man Zugriffsrechte beim MAC ändert/setzt, gibt Euch dieser Blogpost.

Sind die Rechte gesetzt, kann die php.ini mit dem Texteditor ganz einfach editiert werden.
Wer schnell sein will, findet den Tag upload_max_size mittels der Suchfunktion.
Unter diesem Tag können die beiden anderen Tags, die i.d.R. nicht in der php.ini standardmässig enthalten sind, angefügt werden.
Eine nutzbare Einstellung ist die in der Dokumentation vorgeschlagene – sie funktioniert tadellos.

Danach sollte man den Webserver neu starten ( unter MAC OS X Server in der ServerApp )

ServerApp

und es erscheint jetzt die brauchbare Uploadgröße im LinkTipp:

OC_2

Jetzt kann nach Herzenslust geuploadet werden …

3 – Wenn es trotzdem nicht klappt ….

… dann kann es daran liegen, dass ihr – wie ich auch – die offizielle Anleitung nicht richtig gelesen habt ….
Nach dem Ausflug in die Innereien der php-Installation geht es nun zum Ordner zurück, in dem die OwnCloud-Dateien liegen.

Dreh- und Angelpunkt der Einstellungen ist eigentlich nicht die php.ini (die es natürlich weiterhin im System gibt), sondern die Datei .htaccess im Root der OwnCloud-Installation.
Für diese Datei gilt ebenfalls, dass sie nur zu finden ist, wenn versteckte Systemdateien auf die im oben verlinkten Blogeintrag dargestellte Weise sichtbar gemacht wurden.

In der offiziellen Dokumentation zum Thema „big files upload“ wird für die Version 6.0 darauf hingewiesen, dass unbedingt die Reihenfolge der Einstellungen eingehalten werden muss:

bigFiles

Ihr findet aber im Administrationsbereich gar keine Einstellung „to set the Maximum upload“ ?

admin1

… dann ist die Datei .htaccess schreibgeschützt und ihr müsst erst die Schreibrechte für diese Datei setzen.

Danach ist in OwnCloud auch die Einstellung Maximale Upload-Größe vorhanden.

admin2

 

Alles, was ihr jetzt noch machen müsst, ist die entsprechende Größe eintragen ( GB für Gigabyte, das Leerzeichen wird automatisch eingefügt ).

Diese Einstellung überschreibt die Einstellungen aus allen sonstigen php.ini zur Laufzeit von OwnCloud.

Nach erfolgreicher Änderung – im Tooltip wird jetzt die gewünschte Uploadgröße angezeigt – nicht vergessen, die Schreibrechte für die Datei .htaccess wieder zurückzusetzen!
Das war’s – jetzt kann geuploadet werden !!
Zuvor lohnt sich sicher ein Blick in die .htaccess, denn es könnte sein, dass noch weitere Einstellungen vonnöten sind ….

4 – Internal Server Error nach langer Upload-Zeit

Ihr habt bis hierhin alle Einstellungen richtig gesetetzt und der lange laufende Upload bricht trotzdem mit der gelben Meldung „internal Server Error“ ab ?
Nicht ärgern – auch hierfür gibt es spezielle php-Tags die die zulässige Laufzeit eines solchen Uploads ausdehnen, bevor das System sie abbricht.

Um das System zu veranlassen, die Up- oder Downloadsession länger offen zu halten, fügt Ihr auf dem gezeigten Weg die folgenden Tags ein:

in der .htaccess
php_value max_execution_time 1200
php_value max_input_time 1200
php_value session.gc_maxlifetime 1200

oder

in der php.ini
max_execution_time 1200
max_input_time 1200
session.gc_maxlifetime 1200

Die Werte repräsentieren Sekunden.
Die Links führen direkt zu den Erklärungen bei php.net.

Die hier eingetragenen 1200 Sekunden veranlassen das System also, die Session 20 Minuten offenzuhalten.
Zudem sorgt der Tag session.gc_maxlifetime dafür, dass mit dem Abräumen der temporären Dateien ebenfalls 20 Minuten gewartet wird.
Das alles sichert auch langandauernde Uploadsessions, wie z.B. für ein DVD-Image.
So ein Upload dauerte bei mir selbst in der lokalen Installation noch knapp 5 Minuten.
Umso länger würde er online laufen, abhängig von der entsprechenden Bandbreite …

5 – Reihenfolge rules

Wie in der Originaldokumentation schon ziemlich deutlich hervorgehoben wird – es zählt auf jeden Fall, in welcher Reihenfolge man die Änderungen vornimmt.
Das gilt noch einmal mehr, wenn man OwnCloud auf einem Mac mit ServerApp einsetzt.

Eine kleine Schemazeichnung der gegenseitigen Abhängigkeiten und Override-Beziehungen soll das nocheinnmal verdeutlichen:

Reihenfolge

 

Es reicht also aus, im Adminbereich von OwnCloud bzw. in der .htaccess die benötigten Eintragungen vorzunehmen.
Bei andauernden Problemen sollte man aber über die anderen Konfigurationsquellen für PHP wissen und die Override-Beziehungen (im Schema von oben nach unten dargestellt) wissen.

6 – Das Beste zum Schluss

Natürlich ist das Alles nicht auf meinem Mist gewachsen, deshalb sei an dieser Stelle auf das hervorragende OwnCloud-Userforum hingewiesen, dass mir kurze Zeit nach meiner verzweifelten Frage die fundierte Antwort lieferte.
Ein hervorragender Topic zum Thema Upload großer Dateien lässt keine Fragen offen und mein kleiner Blogbeitrag ergänzt hoffentlich hilfreich um die Besonderheiten einer Installation auf einem Mac Server.

Die verständlichen Erläuterungen der Laufzeitkonfiguration von PHP auf php.net haben mir bei der Suche nach Einstellungsmöglichkeiten von PHP geholfen.

Der Blog tiramigoof sei dem empfohlen, der Hilfe bei Handhabung seines MAC sucht – Lösungen für den MAC – das Blogthema ist hier Programm !

Die Arbeit mit Rechten & .ini-Dateien, Sichtbarmachen & Verstecken von Systemdateien per Mausklick und vielen, vielen anderen Aufgaben beim Datei-Handling vereinfacht mein Lieblings-Finder-Ersatz PathFinder – nicht kostenlos aber Anschauen lohnt sich, die Fülle von Möglichkeiten erschließt sich erst nach intensivem Gebrauch !!

Das Editieren von .ini-Dateien erleichtert der kostenlose Code-Editor TextWrangler.

 

Wenn dieser Post jemandem geholfen hat, würde ich mich über ein kurzes Dankeschön als Kommentar und ggfls. die Verlinkung in anderen Blogs oder Foren freuen !!

Wenn dieser Post jemandem geholfen hat, würde ich mich über ein kurzes Dankeschön als Kommentar und ggfls. die Verlinkung in anderen Blogs oder Foren freuen !!

Advertisements

3 Gedanken zu “PHP Upload-Einstellungen für OwnCloud mit OSX Server

  1. gute Anleitung, die Hilft auch bei den anfänglichen Hürden mit Gallery3 😀
    Hast du denn das Sync mit der OwncloudInstanz auf dem Server hinbekommen? Bei mir klappt die Web Applikation wunderbar, aber der Sync Client nicht:(

  2. Hallo Kai !
    Freut mich sehr, dass meine kleine Anleitung Dir helfen konnte !!!

    Ich habe den DesktopSync-Client bisher gar nicht eingesetzt, weil ich die OwnCloud nicht für Produktivdokumente benutze, die sich ändern und deswegen aktualisiert werden müssten, sondern nur als von überall aus zugängliches „Lager“ für statische Daten.

    Ich habe es aber gerade einmal auf meinem MAC-Server (quasi lokal), sowie auf einem MACBook und auf einem Windows7-Client über’s Netz ausprobiert – jeweils ohne Probleme.
    Ein paar Sekunden nach der Installation beginnt der Client die OwnCloud-Daten in ein lokales Verzeichnis herunterzuladen.

    Wodran bestehen denn Deine Probleme genau ?

  3. Ich bedanke mich für diesen gut strukturierten, klaren Blog.
    Ohne ihn hätte ich es wohl aufgegeben weitere Schritte in die Cloud zu wagen.
    Für mich ist Ihre Arbeit wertvoll.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s