Wie ich bereits in anderen Artikeln beschrieben habe, müssen bei der Installation der ownCloud (5.0.x und 6.0.x) bei all-inkl.com  einige Anpassungen vorgenommen werden, damit die Software per SSL im fastcgi Modus fehlerfrei eingesetzt werden kann.

Nach einem Update (siehe auch ownCloud-Anleitung) gehen diese Änderungen normalerweise verloren und der Aufruf der ownCloud-Installation führt bei mir nur zu folgendem PHP-Fehler:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /path/to/owncloud/lib/base.php on line 584

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /path/to/owncloud/lib/base.php on line 619

Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in /path/to/owncloud/lib/base.php on line 619

Um dies zu vermeiden gehe ich beim Update (KEIN Upgrade) folgendermaßen vor:

  1. Per SSH auf dem Server einloggen
  2. Backup der bisherigen Installation anlegen:
    rsync -a owncloud/ owncloud_bkp`date +"%Y%m%d"`/
  3. Die aktuelle ownCloud-Version herunterladen
    wget http://download.owncloud.org/community/owncloud-5.0.x.tar.bz2
  4. Die aktuelle  ownCloud-Version entpacken
    mkdir owncloud_latest; tar -C owncloud_latest -xjf owncloud-5.0.x.tar.bz2
  5. Neuere Dateien überschreiben
    rsync --inplace -rtv owncloud_latest/owncloud/ owncloud/
  6. Die .htaccess Datei anpassen
    • PHP 5.3 aktivieren und PHP-Config anpassen
      AddHandler php53-cgi .php
      php_flag magic_quotes_gpc off
    • SSL-Zugang erzwingen
      <IfModule mod_rewrite.c>
         RewriteEngine on
         # Falls kein HTTPS aufegrufen wurde und die Anfrage  
         # nicht vom SSL-Proxy kommt -> auf SSL weiterleiten
         RewriteCond %{HTTPS} off
         RewriteCond %{HTTP:X-FORWARDED-SERVER} !^ssl-account\.com$ [NC]
         RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
      </IfModule>

      Die Änderungen in der Datei config/config.php (siehe Artikel ownCloud mit SSL-Proxy) werden normalerweise nicht überschrieben.

    • Vorbereitung für korrekte WebDAV-Unterstützung: Dazu muss die Zeile
      RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

      durch

      RewriteRule .* - [env=REMOTE_USER:%{HTTP:Authorization},last]

      ersetzt werden.

  7. Die WebDAV-Authentisierung anpassen: Ab Version 5.0.7 muss in der Datei 3rdparty/Sabre/HTTP/BasicAuth.php nach dem Abschnitt
    // Apache could prefix environment variables with REDIRECT_ when urls
    // are passed through mod_rewrite
    if (!$auth) {
        $auth = $this->httpRequest->getRawServerValue('REDIRECT_HTTP_AUTHORIZATION');
    }

    folgender Source-Code ergänzt werden:

    if (!$auth) {
        $auth = $this->httpRequest->getRawServerValue('REDIRECT_REMOTE_USER');
    }
  8. ownCloud aufrufen und Update abschließen
    In diesem Schritt wird die ownCloud-Installation aktualisiert. Dazu wird zunächst der Wartungsmodus aktiviert und anschließend die Konvertierung angestoßen. Sollte dabei etwas schief laufen, so hat es bei mir geholfen den Wartungsmodus in der Datei ./config/config.php zu deaktivieren ( ‘maintenance’ => false ) und anschließend die Konvertierung nochmal zu starten.
  9. Aufräumen
    rm -rf owncloud-5.0.x.tar.bz2 owncloud_latest/

Läuft alles wie gewohnt, lösche ich einige Tage oder Wochen später abschließend auch das in Punkt 2 angelegte Backup um Speicherplatz auf dem Server zu sparen.