Owncloud 8 auf Centos 7 installieren

Owncloud 8 auf Centos 7 installieren

Irgendwie bin ich (obwohl ich wollte) vom Centos nicht ganz weggekommen, und so werde ich wohl weiterhin 2-gleisig fahren mit Ubuntu 14.04 LTS und Centos 7 (da ist eh alles LTS). Debian werde ich bald rausschmeißen, zumindest wird es da einfacher (wenn der Umzug abgeschlossen ist).

Wo war ich? Oh ja, Owncloud 8 auf Centos 7.

Gemäß diesem Artikel können wir ownCloud unserem lokalen Repository hinzufügen, so daß dann (evtl.) Updates später mit yum update funktionieren – aber das habe ich noch nicht getestet, an sich ist bei ownCloud der Update-Prozess immer etwas komplizierter (z. B. oft mit Datenbank-Upgrade), weshalb er manuell getriggert wird (aus dem Browser auf dem Client heraus).

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-7/isv:ownCloud:community.repo
yum install owncloud

Nun benutze ich Centos, daher möchte ich nicht mysql sondern mariadb benutzen, und sei es nur, weil ich so viel Schlechtes über Oracle (bzw. die Pflege der übernommenen Produkte) gehört habe.

yum install mariadb-server mariadb sqlite
 
systemctl start httpd.service
systemctl start mariadb.service
 
systemctl enable httpd.service
systemctl enable mariadb.service

Hier werden sowohl Apache (httpd unter Centos) wie auch MariaDB (der mysql Ersatz) gestartet sowie auf Autostart gesetzt.

Schließlich sollte man auch seine MariaDB Installation härten.

mysql_secure_installation
Change the root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

MariaDB und mysql sollten sich übrigens zu sehr großen Teilen gleich verhalten. Es gibt Inkompatibilitäten in Details (z. B. beim Import von Daten manchmal ärgerlich, hier hilft das -f (force) Flag, das Fehler anzeigt aber überspringt), die Programme heißen jedoch gleich, ebenso sind die Ports gleich und generell merkt man normalerweise die Unterschiede höchstens bei den Service-Namen.

Schließlich sollte man sicherstellen, daß ownCloud auch Rechte an seinen eigenen Dateien hat – für das Update z. B. wichtig.

chown -R apache.apache /var/www/html/owncloud/

Die Firewall muß auch noch konfiguriert werden:

yum install firewalld 
 
setsebool -P httpd_unified 1
 
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
 
yum install php-gd php-json php-mysql php-curl
yum install php-intl php-mcrypt php-imagick

Und wenn wir soweit sind, müssen wir jetzt die Datenbank für ownCloud vorbereiten.

mysql -u root -p
CREATE DATABASE owncloud_db;
 
CREATE USER ownclouduser@localhost IDENTIFIED BY 'insertpasswordhere';
 
GRANT ALL privileges ON owncloud_db.* TO ownclouduser@localhost IDENTIFIED BY 'ownclouduser';
 FLUSH privileges;

Schließlich können wir uns auf http://IP/owncloud verbinden, und sehen den Einrichte-/Anmeldebildschirm. Hier sollten wir schnell den Admin-User erzeugen sowie die Datenbank-Daten (Benutzer, DB-Name, Passwort) eingeben, und schon läuft unser ownCloud.

Sieht man übrigens nur Sqlite und nicht mysql/MariaDB, so ist mit der Konfiguration der Datenbank etwas nicht in Ordnung oder sie läuft nicht. Man sollte Sqlite nur für sehr kleine (geplante) Installationen verwenden – und das lehrt die Vergangenheit, klein bleiben die wenigsten Dinge (die funktionieren), immerhin kann man hier bequem Daten und Ordner nahezu beliebiger Größe und in hoher Geschwindigkeit (alles abhängig vom verwendeten Server) mit Freunden und Bekannten austauschen.

Siehe auch alten Artikel über ownCloud hier. Passende Boxen gibt es übrigens bei Lowendtalk (wobei dort viele Angebote und Anbieter auch verfrüht verschwinden) und bei Kimsufi (von OVH – die spannenden Boxen sind jedoch stets „In Bevorratung”) bzw. bei der Hetzner-Börse.

6 thoughts on “Owncloud 8 auf Centos 7 installieren

  1. Hast Du ein Workaround bzw. Ansätze parat wenn nach der Installation Sqlite und kein Maria zur Verfügung steht? Mit MariaDB habe ich leider noch keine Erfahrung. Ansonsten ist die Anleitung Top.

    Danke
    Norman

  2. SQLite erscheint immer, dies ist eine dateibasierte Datenbank. Dies funktioniert insbesondere auch ohne MariaDB bzw. MySQL.
    MySQL/MariaDB erscheint bei der Owncloud Einrichtung nur, wenn diese Datenbank sowohl korrekt installiert wurde, benötigte Datenbank wie auch Benutzer angelegt wurden und für Owncloud konfiguriert wurden.
    Also mußt Du entweder noch MySQL oder MariaDB installieren, einrichten und konfigurieren, oder benutzt SQLite. Letzteres sollte nur bei Benutzung mit sehr vielen Dateien (Geschwindigkeits-)Probleme bereiten, und ansonsten die gleiche Funktionalität bereitstellen.

  3. Wer die Meldung

    The “Strict-Transport-Security” HTTP header is not configured to least “15768000” seconds. For enhanced security we recommend enabling HSTS as described in our security tips.”

    im Admin interface bekommt, kann

    Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

    in seine .htaccess Datei im owncloud-Verzeichnis hinzufügen.

    Diese fängt bei mir dann folgendermaßen an:

    # Version: 8.1.4
    <IfModule mod_headers.c>
      <IfModule mod_fcgid.c>
        <IfModule mod_setenvif.c>
           SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
           RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
        </IfModule>
      </IfModule>
     
      <IfModule mod_env.c>
        # Add security and privacy related headers
        Header set X-Content-Type-Options "nosniff"
        Header set X-XSS-Protection "1; mode=block"
        Header set X-Robots-Tag "none"
        Header set X-Frame-Options "SAMEORIGIN"
        Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
        SetEnv modHeadersAvailable true
      </IfModule>

    Diese eine Fehlermeldung ist daraufhin verschwunden.
    (Referenz: ownCloud Forum.)

  4. Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn Sie alle Funktionen nutzen möchten.

    bzw.

    "This server has no working internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable internet connection for this server if you want to have all features."

    Hier hat ein ebenfalls geplagter ownCloud-Nutzer so ziemlich alle möglichen Lösungen zu obiger Fehlermeldung aufgeführt.

    Jedoch.. in seinem (und meinem) Fall ist diese Meldung mit folgender Meldung verknüpft

    cURL is using an outdated NSS version (NSS/3.15.4). Please update your operating system or features such as installing and updating apps via the app store or Federated Cloud Sharing will not work reliably.

    und insofern müssen wir curl updaten. Gar nicht so einfach auf einem CentOS Gerät (bei mir CentOS 7.1), zumindest mit den Originalrepos. Also nehme man ein upgedatetes Repo.

    Vorher sieht die Curl Version so aus:

     curl --version
    curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.15.4 zlib/1.2.7 libidn/1.28 libssh2/1.4.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
    Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz

    Update dann per (siehe hier, das hier hat leider nicht funktioniert)

    rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm
    yum update

    Ergebnis

    curl --version
    curl 7.45.0 (x86_64-redhat-linux-gnu) libcurl/7.45.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.32 libssh2/1.6.0
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets Metalink

    Ein Neustart ist erforderlich, bis die Fehlermeldung in ownCloud (im Admin Menü) verschwindet

    Das Update auf 8.2.1 wird mir leider nach wie vor nicht im Admin Interface angezeigt, da werde ich demnächst wohl mal manuell updaten müssen.

  5. Cron Jobs

    Noch ein paar Dinge. Wenn man Hintergrundaufgaben benutzen möchte (z. B. Datenbank-Aufräumen, Backup, …) muß man noch den passenden ownCloud-Job in cron eintragen:

    siehe offizielle ownCloud Doku oder direkt per

    crontab -u www-data -e

    und dann die Zeile

    */15  *  *  *  * php -f /var/www/owncloud/cron.php

    hinzufügen.

    Warnung bzgl. File Lock und Key/Value Store

    Auch wenn die ownCloud-Doku APCu als Key-/Value-Store empfiehlt, empfiehlt sich doch eher Redis. Das liegt an zwei Dingen.

    1. APCu ist z. b. in Ubunut 14.04 nicht ordentlich enthalten und kann nur über nicht-offizielle Repositories installiert werden
    2. Redis wird für den File-Lock ohnehin benötigt und kann als einzige Lösung beides

    Natürlich kann man – das ist das einfachste – die unqualifizierten Warnungen im ownCloud-Adminmenü auch einfach ignorieren (bei sehr kleinen Kosten in Bezug auf die Geschwindigkeit). Aber wer das nicht möchte, findet hier eine sehr sehr gute und vollständige Anleitung, um Redis zu installieren und anschließend sowohl für „Transactional File Locking” sowie für „Memory Caching” zu konfigurieren.

  6. Wichtiger Hinweis noch zu redis: das ist von hause aus komplett ungesichert, horcht auf allen Interfaces (nicht nur localhost) und benötigt keine Authentifizierung.
    Siehe auch hier oder hier.
    Minimal sollte man auf dem Server eine Firewall am laufen haben, um den Port (Standard 6379) nach extern zu blockieren.
    Aus einem offenen Redis auszubrechen und den Server zu kompromittieren sollte nicht möglich sein. Man sollte es jedoch auf keinen Fall darauf ankommen lassen (und zumindest das redis selber kann so lange ungesichert beliebig verkonfiguriert werden).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.