ownCloud Installation · 10 min read · Jan 22, 2026

Ihre Cloud, Ihre Daten, Ihre Art! - ownCloud 4.0 Auf CentOS 6.2 + nginx + PostgreSQL

Ihre Cloud, Ihre Daten, Ihre Art! - ownCloud 4.0 Auf CentOS 6.2 + nginx + PostgreSQL

Dieses Dokument beschreibt, wie man ownCloud von der “ownCloud-Community” auf einem CentOS 6.2-basierten Webserver aus einem Tar-Paket mit nginx und php-fpm sowie einer PostgreSQL-Datenbank als Backend installiert und einrichtet. Bei anderen Distributionen kann es geringfügige Änderungen bei den Installationsverfahren der Softwarevoraussetzungen geben. Dieser Leitfaden hilft nicht nur bei der Installation des Produkts, sondern auch zu verstehen, warum bestimmte Punkte so umgesetzt werden, wie sie umgesetzt werden (dies ist besonders hilfreich für Benutzer mit wenig oder gar keinen Kenntnissen, die, wie ich vor einiger Zeit, gerade erst mit Linux begonnen haben).

Was ist ownCloud?

Es handelt sich um ein Tool zum Teilen von Dateien/Kontakten/Kalendern für Gruppen oder Unternehmen, das aus meiner Sicht das Beste aus Dropbox und GroupOffice vereint (bislang ohne E-Mail-Integration) und nicht so überladen oder schwerfällig ist wie Alfresco oder Sharepoint.

Links zu mehreren Abschnitten des Entwicklers:

Ich garantiere nicht, dass es bei Ihnen funktioniert, da es später Änderungen an der Software geben könnte, sowohl bei den Voraussetzungen als auch bei der Hauptsoftware, die dazu führen, dass die in diesem Tutorial genannten Verfahren nicht erfolgreich abgeschlossen werden können.
P.S. Alle hinzugefügten Fehler sind meine. Verwenden Sie Kommentare oder besuchen Sie den IRC.

Vorbemerkung

In diesem Tutorial verwenden wir:

  • CentOS 6.2 Installationsmedium
  • Hostname: owncloud.example.com
  • IP-Adresse: 192.168.1.100
  • Router-Adresse: 192.168.1.1
  • Netzmaske: 255.255.255.0
  • Gehen Sie davon aus (stellen Sie sich vor), dass der Server mit dem öffentlichen Internet verbunden ist
  • Wir verwenden unseren Computer, um den Server remote über ssh (putty unter Windows) zu verwalten, auch wenn Sie den Server direkt neben sich haben oder ihn als virtuelle Maschine unter Ihrem Hauptbetriebssystem ausführen
  • GNU vim als unseren primären Texteditor. Aber fühlen Sie sich frei, jeden anderen Ihrer Wahl zu verwenden.

Anforderungen

Wir benötigen eine funktionierende, saubere (minimale) Installation von CentOS 6.2 (x86 oder x86_64 ist irrelevant), ich persönlich verwende die x86_64-Version und empfehle Ihnen dringend, dasselbe zu tun.

Zuerst die wichtigsten Dinge

Melden Sie sich an der Serverkonsole als root an. Sie befinden sich am [root@owncloud ~]# Prompt.

Ich bevorzuge bestimmte Einstellungen, die völlig optional sind, aber Sie könnten sie später nützlich finden. Ich habe mein Terminal so eingerichtet, dass es die Ausgabe in Farbe mit Datum, Uhrzeit, Servernamen und aktuellem Ordner am Prompt anzeigt. Außerdem wird die Historie der Befehle mit Datum/Uhrzeit angezeigt. Ich erhöhe auch die Standardwerte für die Historie.

Um dies zu tun, führen Sie aus:

vi ~/.bash_profile

Fügen Sie die genannten Zeilen nach der export PATH-Direktive hinzu. Falls Sie es nicht wissen, drücken Sie “i”, um in den Einfügemodus zu gelangen, “ESC”, um ihn zu verlassen. Vi ist vi :)

#Historiengröße, um 50.000 Befehle zu halten und die Dateigröße zehnmal größer zu machen
export HISTSIZE=50000
export HISTFILESIZE=500000
#Zeige Historie mit Datum als Beispiel: "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
#Automatische Farbgebung der Ausgabe des "ls"-Befehls
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#Setze den Prompt, um anzuzeigen, wie im Beispiel: "Thu May 24 2012  14:28:56 owncloud.example.com of root @ ~]"
#und färbe Datum, Uhrzeit und Standort unterschiedlich. Setze alle Eingabetexte auf Standardwerte.
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y}  \e[1;31m\]\t \e[1;37m\] \H of \u @ \W] \033[00m\]"

Speichern und beenden Sie die Datei. Wenn Sie es nicht wissen, geben Sie außerhalb des Einfügemodus entweder “:wq” ein und drücken Sie die Eingabetaste, um zu speichern und zu beenden, oder drücken Sie einfach “ZZ”, um dasselbe zu tun. Um sich erneut am Terminal anzumelden, um die Änderungen anzuwenden, führen Sie aus:

exit

Netzwerk

Wenn Sie während der Installation keine statische IP-Adresse eingerichtet haben, sagen wir, Sie haben einen DHCP-aktivierten Router, müssen Sie dies jetzt tun, andernfalls fahren Sie mit dem nächsten Schritt fort.

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Ändern oder fügen Sie nur die genannten Zeilen hinzu.

BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"

Speichern und beenden. Starten Sie dann das Netzwerk neu:

service network restart

Überprüfen Sie, ob das Netzwerk neu konfiguriert wurde, indem Sie ausführen:

ifconfig

Jetzt sollten Sie in der Lage sein, sich als root über ssh mit dem Server unter 192.168.1.100 zu verbinden. Aber tun Sie das noch nicht, schließen Sie zuerst den nächsten Schritt ab.

Den Server sichern

Bevor wir weiter fortfahren, da wir angenommen haben, dass der Server tatsächlich mit dem Internet verbunden ist, müssen wir ihn sichern. Wir werden drei Dinge tun.

  • Konfigurieren Sie den ssh-Server so, dass er keine Root-Anmeldung zulässt und den Standardport 22 auf etwas anderes, weniger Häufiges, z.B. 60606, ändert.
  • Richten Sie iptables so ein, dass eingehende Verbindungen am neuen Port erlaubt sind.
  • Fügen Sie unseren ersten Systembenutzer hinzu, um sich über ssh mit ihm anzumelden.
  1. Sicherung der Remote-Anmeldung Wenn Sie sich noch nicht von der Konsole auf dem Server angemeldet haben (ich meine die lokale Konsole, noch nicht ssh), melden Sie sich als root an und führen Sie dann aus:

    vi /etc/ssh/sshd_config

In der dreizehnten Zeile der unveränderten Standarddatei (falls Sie sich wieder fragen, geben Sie “:set number” ein und drücken Sie die Eingabetaste außerhalb des Einfügemodus, um die Zeilennummern zu erhalten) gibt es die Port 22-Direktive. Duplizieren Sie sie, ändern Sie die Portnummer in 60606 und kommentieren Sie sie aus.
Suchen Sie dann (außerhalb des Einfügemodus drücken Sie “/“ und geben Sie den Satz ein, nach dem Sie suchen) die Direktive PermitRootLogin yes, duplizieren Sie sie erneut und ändern Sie ihren Wert in no und kommentieren Sie sie ebenfalls aus, speichern Sie dann die Datei. Oh, und es ist “:noh”, um die Hervorhebung auszuschalten.
Starten Sie danach sshd neu:

service sshd restart
  1. iptables einrichten Überprüfen Sie zuerst die bereits vorhandenen iptables:

    iptables -L -v --line-numbers

In der Standardinstallation wird an Position ‘4’ die Direktive angezeigt, um neue tcp-Verbindungen am Standard-ssh-Port zu akzeptieren, die wir loswerden müssen, führen Sie daher aus:

iptables -D INPUT 4

Jetzt müssen wir Verbindungen zum Port 60606 stattdessen zulassen. Führen Sie aus:

iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT

Zuletzt speichern Sie den aktuellen iptables-Zustand:

service iptables save   
service iptables restart
  1. Erster Benutzer hinzufügen Alles ist jetzt gut, bis auf eine Sache, wir haben uns von ssh ausgeschlossen, da root nicht erlaubt ist und es noch keine anderen Systembenutzer gibt. Zeit, das zu korrigieren:

    useradd -c "ownCloud-Systembenutzer" -m -n cloudadmin

Setzen Sie ein Passwort für diesen Benutzer:

passwd cloudadmin

Fertig. Sie könnten das Passwort für den Benutzer im ersten Befehl festlegen, aber auf diese Weise wird der Passwortwert während der Eingabe im Terminalfenster sichtbar und auch in der .bash_history des root-Benutzers gespeichert, was nicht wünschenswert ist.
Jetzt können Sie sich über ssh anmelden, indem Sie den folgenden Befehl in Ihrem Terminalfenster auf dem lokalen Computer ausführen:

ssh [email protected] -p60606

Vorbereitende Schritte

Die Softwareinstallation ist in den meisten Fällen ziemlich unkompliziert, und wir hätten die meisten davon bei der Erstinstallation “überprüfen” können, aber ich bevorzuge es, die Dinge von Hand zu erledigen.
Ich teile die Installation absichtlich in Abschnitte auf.

  1. Anmeldung als Superuser Im Moment sollten Sie sich am Konsolenprompt als cloudadmin-Benutzer befinden. Um Root-Rechte zu erlangen, führen Sie aus:

    su -
  2. Software-Repositories Um die gewünschte Software zu verwenden, sind zwei Repositories erforderlich.

    Zuerst EPEL, führen Sie aus:

    rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm

Und nein, i386 ist kein Fehler, es ist dasselbe für 32-Bit- und 64-Bit-Systeme.
Dann Remi, führen Sie aus:

rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi   
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Überprüfen Sie nun beide epel- und remi-Repositories und setzen Sie im Falle, dass es nicht vorhanden ist, enabled=1, indem Sie ausführen:

vi /etc/yum.repos.d/epel.repo   
vi /etc/yum.repos.d/remi.repo

Aktualisieren Sie schließlich Ihr System. Selbst ein frisch installiertes CentOS könnte zuerst ein Update benötigen. Führen Sie aus:

yum update -y
  1. Präzise Zeit Es ist gut, mit dem Rest der Welt synchronisiert zu sein, führen Sie aus:

    yum install ntp   
    service ntpd start   
    chkconfig ntpd on   
    tpd
  2. Einige andere Tools Um mein Leben ein wenig einfacher zu machen, verwende ich vim anstelle von vi, htop anstelle von top, elinks, um Dinge schnell aus dem Terminal heraus zu testen, und mc, als guten und nicht nur dual-pane-Dateimanager. wget ist erforderlich, um Dinge herunterzuladen, und man ist unerlässlich, wenn Sie einfach alles lesen möchten. Führen Sie aus:

    yum install vim htop elinks mc wget man -y

ownCloud Einrichtung

  1. Softwarevoraussetzungen Eine Menge php-Zeug, führen Sie aus:

    yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql

Bearbeiten Sie php.ini, führen Sie aus:

vim /etc/php.ini

Es gibt vier Direktiven zu ändern,
die erste sollte in Zeile 736 sein, Direktive post_max_size
die zweite in Zeile 848, Direktive cgi.fix_pathinfo
die dritte in Zeile 885, Direktive upload_max_filesize
die letzte in Zeile 956, Direktive date.timezone, ändern Sie sie entsprechend dem Standort Ihres Servers.

[...]
post_max_size = 64M
[...]
cgi.fix_pathinfo = 0
[...]
upload_max_filesize = 64M
[...]
date.timezone = "Europe/Prague"
[...]

Falls Sie nicht wissen, wie, können Sie Ihren Zeitzonennamen finden, indem Sie ausführen:

cat /etc/sysconfig/clock

Konfigurieren Sie dann php-fpm so, dass es Unix-Sockets anstelle des TCP-Stacks verwendet, führen Sie aus:

vim /etc/php-fpm.d/www.conf

Lassen Sie es ab Zeile zwölf so aussehen:

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock

Starten Sie php-fpm:

chkconfig php-fpm on   
service php-fpm start
  1. Backend - PostgreSQL Um es zu installieren und einzurichten, führen Sie aus:

    yum install postgresql postgresql-libs postgresql-server   
    service postgresql initdb   
    service postgresql start   
    chkconfig postgresql on

Melden Sie sich als postgres-Systembenutzer an, erstellen Sie einen Datenbankbenutzer, eine Datenbank und gewähren Sie Berechtigungen:

su - -c "psql" postgres   
CREATE USER clouduser WITH PASSWORD 'userpass';   
CREATE DATABASE clouddb OWNER clouduser ENCODING 'UTF8';   
GRANT ALL PRIVILEGES ON DATABASE clouddb TO clouduser;   
\q

Ändern Sie die PostgreSQL-Konfigurationsdatei, um Passwortanmeldungen zuzulassen:

vim /var/lib/pgsql/data/pg_hba.conf
  • Suchen Sie nach
    # IPv4 lokale Verbindungen:   
    host all all 127.0.0.1/32 ident
  • Und ändern Sie es in
    # IPv4 lokale Verbindungen:   
    host all all 127.0.0.1/32 password

Starten Sie die Datenbank neu:

service postgresql restart
  1. nginx-Webserver Installieren, so einstellen, dass er beim Booten startet, und dann stoppen:

    yum install nginx   
    service nginx start   
    chkconfig nginx on   
    service nginx stop

Bereiten Sie die Konfigurationsdatei für die owncloud-Website vor:

vim /etc/nginx/conf.d/owncloud.conf
# http auf https umleiten.
server {
  listen 80;
  server_name owncloud.example.com;
  rewrite ^ https://$server_name$request_uri? permanent;  # erzwinge https
}
# owncloud (ssl/tls)
server {
  listen 443 ssl;
  ssl_certificate /etc/nginx/certs/server.crt;
  ssl_certificate_key /etc/nginx/certs/server.key;
  server_name owncloud.example.com;
  root /var/www/owncloud;
  index index.php;
  client_max_body_size 64M; # maximale Uploadgröße festlegen
  # direkten Zugriff verweigern
  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }
  # Standardversuchreihenfolge
  location / {
    try_files $uri $uri/ @webdav;
  }
  # owncloud WebDAV
  location @webdav {
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS on;
    include fastcgi_params;
  }
  # php aktivieren
  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS on;
    include fastcgi_params;
  }
}

Jetzt erstellen wir Zertifikate für den Server, beantworten Sie die Fragen im Prompt entsprechend Ihren Einstellungen:

mkdir -p /etc/nginx/certs/   
cd /etc/nginx/certs/   
openssl genrsa -des3 -out server.key 1024   
openssl req -new -key server.key -out server.csr   
cp server.key server.key.orig   
openssl rsa -in server.key.orig -out server.key   
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Laden Sie nginx neu, um die neue Konfiguration zu aktivieren:

service nginx reload
  1. ownCloud-Dateien und -Verzeichnisse Die ownCloud-Installation besteht aus dem Herunterladen und Entpacken des Archivs, mit einigen Anpassungen auf der Serverseite, führen Sie daher aus:

    cd /tmp   
    wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2   
    tar xjf owncloud-4.0.0.tar.bz2   
    mv owncloud /var/www/   
    mkdir -p /var/www/owncloud/data   
    chmod 770 /var/www/owncloud/data   
    chown -R root:apache /var/www/owncloud

Und erneut, apache als Gruppe im letzten Befehl ist kein Fehler. php-fpm wird standardmäßig als Benutzer apache ausgeführt.

  1. Zugriff auf die Website Öffnen Sie Port 443, um auf die Website zugreifen zu können, führen Sie aus:

    ip6tables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT   
    service iptables save   
    service iptables restart

Testlauf

Durchsuchen Sie https://owncloud.example.com über Ihren bevorzugten Browser und beenden Sie das Installationsverfahren.

Wählen Sie einen Administrator-Benutzernamen und ein Passwort, wählen Sie PostgreSQL als Datenbank-Backend und geben Sie die entsprechenden Werte in den Datenbankverbindungs-Einstellungen ein.

Viel Spaß.

Fehlersuche

Die Protokolldateien befinden sich an folgenden Orten:

/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var/log/nginx/error.log

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.