Installation · 5 min read · Jan 23, 2026

Installieren von ownCloud mit SSL und Nginx in CentOS 6.5

Installieren von ownCloud mit SSL und Nginx in CentOS 6.5

Version: 3.0
Autor: Aaron

CentOS hat viele Pakete aktualisiert, und der Beitrag, den ich vor 1 Jahr geschrieben habe, funktioniert nicht mehr in CentOS 6.5, das auf den neuesten Stand gebracht wurde.

Ich habe recherchiert und es sieht so aus, als wäre dies das erste Tutorial im Jahr 2014, wie man owncloud in CentOS mit Nginx, PostgreSQL und SSL installiert. Man wird heutzutage keine Installation von CentOS und owncloud mit Nginx finden, weil die meisten Leute nicht wissen, wie man einfache Probleme löst.

Mein Server war betroffen und das ist der Grund, warum ich heute diesen Beitrag geschrieben habe.

Die Pakete in den EPEL- und CentOS-Repos sind veraltet, während Nginx, PostgreSQL und owncloud etwas neuere Pakete benötigen. Man bleibt einfach auf der Anmeldeseite, ohne Zugriff auf seine Dateien zu erhalten, und fragt sich, was gerade passiert ist. Die Protokolldateien zeigen einem nicht, wo das Problem herkommt, noch owncloud selbst.

Die Anforderungen an owncloud sind

PostgreSQL >= 9.0, aber in EPEL ist 8.8, es benötigt php 5.3.3 als Minimum, funktioniert aber nicht mit dieser Version, auch all diese neueren Pakete benötigen die neueste stabile Nginx-Version.

Das erste, was wir tun sollten, ist, alle MySQL-Bibliotheken zu entfernen.

yum remove mysql* mysql-server mysql-devel mysql-libs

Wie gewohnt werden wir 3rd Party Repos installieren, wie EPEL, Remi und das neue: neuestes PostgreSQL

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm

Bearbeiten Sie das EPEL-Repository und stellen Sie sicher, dass oben enabled=1 steht.

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

Machen Sie dasselbe mit dem Remi-Repo, aber stellen Sie sicher, dass PHP-Version 5.6 aktiviert ist,

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


Erstellen Sie eine Nginx-Repo-Konfigurationsdatei

vi /etc/yum.repos.d/nginx.repo

und fügen Sie hinzu:

[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1

Aktualisieren Sie Ihren CentOS-Server, um diese 3rd Party Repos hinzuzufügen

yum update

Installieren Sie die folgenden Pakete, um die Anforderungen von owncloud zu erfüllen:

yum install nginx postgresql93 postgresql93-libs postgresql93-server wget php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql php-pdo

Starten Sie PostgreSQL, starten Sie Nginx vorübergehend und fügen Sie es mit chkconfig zu den Systemstartdiensten hinzu

service postgresql-9.3 initdb  
service postgresql-9.3 start   
chkconfig postgresql-9.3 on  
service nginx start   
chkconfig nginx on  
service nginx stop

Erstellen Sie einen neuen PostgreSQL-Benutzer und eine Datenbank.

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

Überprüfen Sie Ihre Zeitzone und merken Sie sie sich

cat /etc/sysconfig/clock

Bearbeiten Sie die PHP-Konfigurationsdatei

vi /etc/php.ini
post_max_size = 2G
cgi.fix_pathinfo = 0
upload_max_filesize = 2G
date.timezone = "your/timezone"

Bearbeiten Sie die PHP-FPM-Konfigurationsdatei, um TCP anstelle von Unix-Socket zu verwenden

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

Stellen Sie sicher, dass listen nicht auf /var/run/php-fpm/php-fpm.sock zeigt

listen = 127.0.0.1:9000

Starten Sie den PHP-FPM-Dienst

chkconfig php-fpm on  
service php-fpm start

Bearbeiten Sie die PostgreSQL-Konfigurationsdatei, um Passwortanmeldungen zuzulassen:

vi /var/lib/pgsql/9.3/data/pg_hba.conf

und ändern Sie ident in password - beachten Sie den Cursor im folgenden Bild:

Starten Sie die PostgreSQL-Datenbank neu service postgresql-9.3 restart

Erstellen Sie einen leeren Ordner, in dem wir unsere SSL-Zertifikate speichern

cd /etc/nginx  
mkdir -p cert

Wenn Sie mit Apache-virtuellen Hosts vertraut sind, dann ist die nächste Datei, die Sie erstellen müssen, genau das.

cd conf.d
vi cloud.conf
upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php5-fpm.sock;
}

server {
        listen 80;
        server_name 10.10.10.110; # ersetzen Sie dies durch Ihren Domainnamen oder internen Server-IP
        return 301 https://$server_name$request_uri;  # erzwingen Sie https
}


server {
        listen 443 ssl;
        server_name 10.10.10.110; # ersetzen Sie dies durch Ihren Domainnamen oder internen Server-IP

        ssl_certificate /etc/nginx/cert/server.crt;
        ssl_certificate_key /etc/nginx/cert/server.key;

        # Pfad zum Root Ihrer Installation
        root /var/www/owncloud/;

        client_max_body_size 10G; # maximale Upload-Größe festlegen
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # Die folgenden 2 Regeln sind nur mit Webfinger erforderlich
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass php-handler;
        }

        # Optional: setzen Sie den langen EXPIRES-Header für statische Assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Protokollzugriff auf Assets nicht protokollieren
                access_log off;
        }
}

Ich habe diese Nginx-Konfigurationsdatei auf meine Website hochgeladen, also anstatt sie manuell zu schreiben, geben Sie einfach wget http://linux.sytes.net/img/nginx1-6.conf.txt ein und benennen Sie sie in etwas wie cloud.conf um.

Wie Sie im oben angegebenen Nginx “virtuellen Host” angegeben haben, wird unser ownCloud-Server SSL verwenden, also lassen Sie uns diese Zertifikate erstellen, oder?

cd ..  
cd cert  
openssl req -x509 -nodes -sha384 -days 3650 -newkey rsa:4096 -keyout server.key -out server.crt  
chmod 600 server.key  
chmod 600 server.csr

Laden Sie als Nächstes das owncloud-Archiv herunter, extrahieren Sie es und setzen Sie die Berechtigungen für den owncloud-Ordner. Bitte beachten Sie, dass wir die Entwicklungsversion von owncloud herunterladen werden.

cd /var/www  
wget http://download.owncloud.org/community/daily/owncloud-daily-master.tar.bz2  
tar xjf owncloud-daily-master.tar.bz2  
mkdir -p owncloud/data  
chmod 770 owncloud/data  
chmod 777 owncloud/config/  
chown -R root:apache owncloud  
rm -rf owncloud-daily-master.tar.bz2

Erlauben Sie eingehende TCP-Verbindungen zu Ihren Serverports: 80 und 443. Wenn Sie oder jemand anderes die interne IP Ihres Servers aufruft, wird sie auf https://yourserverinternalip umgeleitet, da Sie dies im vorherigen Nginx “virtuellen Host” angegeben haben.

iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 80 -j ACCEPT  
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 443 -j ACCEPT
service iptables save  
service iptables restart

Starten Sie PostgreSQL zum letzten Mal neu und starten Sie Nginx mit der neueren Konfiguration:

service postgresql-9.3 restart  
service nginx start

Das ist alles, öffnen Sie Ihren Browser und geben Sie die IP Ihres Servers ein. Wählen Sie einen beliebigen Anmeldenamen und ein Passwort, das Ihnen gefällt.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.