GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Seafile mit Nginx unter CentOS 7

Seafile ist eine private Cloud-Software, die ähnliche Funktionen wie Dropbox, mega.co.nz und andere bietet, nur auf Ihrem eigenen Server gehostet. Seafile basiert auf der Python-Programmiersprache und wird unter einer Open-Source-Lizenz veröffentlicht, sodass Sie Ihre eigene private Cloud erstellen können, die viel sicherer ist.

Seafile unterstützt die Verschlüsselung, um Ihre Daten sicher zu speichern. Um Dateien in einer Speicherbibliothek zu verschlüsseln, müssen Sie beim Erstellen der Bibliothek ein Kennwort festlegen. Das Passwort wird nicht in der Seafile-Cloud gespeichert. So kann selbst der Administrator der Server Ihre verschlüsselten Daten ohne das Passwort nicht einsehen.

In diesem Tutorial werde ich Seafile auf CentOS 7 mit Nginx-Webserver und MariaDB als Datenbankserver installieren.

Voraussetzungen

  • CentOS 7-Server
  • Root-Rechte

Schritt 1 – CentOS für Seafile vorbereiten

Melden Sie sich mit Ihrem ssh-Root-Passwort beim centOS-Server an.

ssh [email protected]
TYPE YOUR PASSWORD

    Bearbeiten Sie die SELinux-Konfigurationsdatei mit vim.

    vim /etc/sysconfig/selinux

    Ersetzen Sie den Wert „enforcing“ durch „disabled“.

    SELINUX=disabled

    Speichern Sie die Datei und verlassen Sie den Editor.

    Starten Sie den Server neu, um die Änderung der SELinux-Richtlinie anzuwenden.

    reboot

    Warten Sie auf den Neustart des Servers und melden Sie sich dann erneut als Root-Benutzer bei Ihrem Server an.

    Überprüfen Sie Selinux mit dem folgenden Befehl:

    getenforce

    Sie sollten „Deaktiviert sehen ' als Ergebnis.

    Schritt 2 – Seafile-Abhängigkeiten installieren

    Seafile basiert auf Python, daher müssen wir für die Installation zuerst Python installieren. Seafile unterstützt SQLite- und MySQL/MariaDB-Datenbanken. Ich werde hier MariaDB als Datenbank für Seafile verwenden, da es eine bessere Leistung als SQLite bietet. Nginx wird als Reverse-Proxy für Seafile und Seahub verwendet.

    In diesem Schritt werden wir mehrere Python-Pakete, MariaDB und Nginx installieren. Wir beginnen mit der Installation des EPEL-Repositorys auf unserem CentOS-Server.

    yum -y install epel-release

    Installieren Sie als Nächstes die Python-Pakete MariaDB und Nginx.

    yum -y install python-imaging MySQL-python python-simplejson python-setuptools mariadb mariadb-server nginx

    Warten Sie, bis alle Pakete installiert sind.

    Schritt 3 – MariaDB konfigurieren

    In Schritt 2 haben wir den MariaDB-Server bereits installiert, wir müssen jetzt nur noch den Dienst starten und das Root-Passwort konfigurieren.

    Starten Sie MariaDB und konfigurieren Sie das Root-Passwort mit den folgenden Befehlen:

    systemctl start mariadb
    mysql_secure_installation

    Geben Sie Ihr Root-Passwort ein.

    Set root password? [Y/n] Y
    New password:
    Re-enter new password:
    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

    Das MariaDB-Root-Passwort ist konfiguriert und wir können uns jetzt bei der MySQL-Shell anmelden.
    Hinweis:Die MariaDB-Befehlszeilen-Shell heißt mysql.

    Wir werden 3 Datenbanken für Seafile erstellen:

    1. ccnet_db
    2. seafile_db
    3. seahub_db

    Und wir werden einen neuen Benutzer 'seacloud erstellen ' mit dem Passwort 'deinpasswort '. Ersetzen Sie Ihr Passwort durch ein sicheres Passwort!

    Melden Sie sich mit dem Mysql-Client bei der MySQL-Shell an.

    mysql -u root -p
    TYPE YOUR PASSWORD

    Führen Sie die Mysql-Abfragen unten aus, um die Datenbanken und den Benutzer für die Seafile-Installation zu erstellen.

    create database ccnet_db character set = 'utf8';
    create database seafile_db character set = 'utf8';
    create database seahub_db character set = 'utf8';

    create user [email protected] identified by 'yourpassword';

    grant all privileges on ccnet_db.* to [email protected] identified by 'yourpassword';
    grant all privileges on seafile_db.* to [email protected] identified by 'yourpassword';
    grant all privileges on seahub_db.* to [email protected] identified by 'yourpassword';
    flush privileges;
    exit

    Ersetzen Sie Ihr Passwort in den obigen Befehlen durch Ihr eigenes Passwort.

    Schritt 4 - Seafile installieren

    In diesem Schritt werden wir Seafile installieren. Seafile wird unter dem nginx-Benutzer ausgeführt, sodass wir nginx als Reverse-Proxy für die Seafile- und Seahub-Dienste verwenden können.

    Wir werden seafile unter dem nginx-Benutzer im Verzeichnis ‚/var/www/seafile‘ installieren, dieses Verzeichnis erstellen und es mit cd betreten.

    mkdir -p /var/www/seafile
    cd /var/www/seafile

    Laden Sie Seafile mit dem Befehl wget herunter und extrahieren Sie das heruntergeladene Archiv.

    wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_6.0.5_x86-64.tar.gz
    tar -xzvf seafile-server_6.0.5_x86-64.tar.gz

    Benennen Sie das Verzeichnis in 'seafile-server' um und wechseln Sie in dieses Verzeichnis.

    mv seafile-server-6.0.5 seafile-server
    cd seafile-server/

    Führen Sie die Datei „setup-seafile-mysql.sh“ aus, um die Datenbank zu konfigurieren.

    ./setup-seafile-mysql.sh

    Drücken Sie die Eingabetaste und Sie werden nach folgenden Informationen gefragt:

    • Servername - Ich werde den Server-Hostnamen 'natsume verwenden '
    • IP oder Domain des Servers - IP-Adresse des Servers, in meinem Fall '192.168.1.115 '
    • Standarddatenverzeichnis - drücken Sie einfach die Eingabetaste
    • Standardport - drücken Sie die Eingabetaste
    • Wählen Sie nun für die Datenbankkonfiguration die Nummer 2

    Für die MySQL-Konfiguration:

    • Standardhost verwenden - localhost
    • Standardport - 3306
    • der mysql-Benutzer - 'seacloud '
    • und das Passwort ist 'IhrPasswort '
    • ccnet-Datenbank ist 'ccnet_db '
    • Seafile-Datenbank ist 'seafile_db '
    • Seahub-Datenbank ist 'seahub_db '

    Drücken Sie die Eingabetaste und das Skript erstellt die Datenbanktabellen für die Seedatei.

    Jetzt können wir die Seafile- und Seahub-Dienste starten.

    ./seafile.sh start
    ./seahub.sh start

    Wenn die Datei seahub.sh ausgeführt wird, werden wir nach der Admin-Konfiguration gefragt.

    Geben Sie Ihre Admin-E-Mail und Ihr Passwort ein, dann wird der Seahub-Dienst ausgeführt.

    Seafile ist installiert und läuft jetzt, wir können von einem Webbrowser mit der Server-IP auf Port 8000 (in meinem Fall - 192.168.1.115:8000) auf Seafile zugreifen, aber wir werden es jetzt nicht tun, weil wir einen Reverse-Proxy dafür verwenden werden Seafile-Server und wir werden Seafile mit einer systemd-Dienstdatei ausführen.

    Daher müssen wir den Seafile- und Seahub-Dienst vorerst stoppen.

    ./seafile.sh stop
    ./seahub.sh stop

    Schritt 5 – Seafile und Seahub-Dienst konfigurieren

    Wir werden seafile als nginx-Benutzer ausführen, also müssen wir den Eigentümer des seafile-Installationsverzeichnisses und des seahub_cache-Verzeichnisses in nginx-Benutzer ändern:

    cd /var/www/
    chown -R nginx:nginx *
    chown -R nginx:nginx /tmp/seahub_cache

    Gehen Sie als Nächstes in das systemd-Verzeichnis und erstellen Sie eine Datei seafile.service mit vim:

    cd /etc/systemd/system/
    vim seafile.service

    Fügen Sie die Seafile-Dienstkonfiguration unten ein:

    [Unit]
    Description=Seafile Server
    Before=seahub.service
    After=network.target mariadb.service

    [Service]
    Type=oneshot
    ExecStart=/var/www/seafile/seafile-server/seafile.sh start
    ExecStop=/var/www/seafile/seafile-server/seafile.sh stop
    RemainAfterExit=yes
    User=nginx
    Group=nginx

    [Install]
    WantedBy=multi-user.target

    Speichern und beenden.

    Erstellen Sie nun eine neue Datei seahub.service.

    vim seahub.service

    Und fügen Sie die Konfiguration unten ein.

    [Unit]
    Description=Seafile Hub
    After=network.target seafile.target mariadb.service

    [Service]
    Type=oneshot
    ExecStart=/var/www/seafile/seafile-server/seahub.sh start-fastcgi
    ExecStop=/var/www/seafile/seafile-server/seahub.sh stop
    RemainAfterExit=yes
    User=nginx
    Group=nginx

    [Install]
    WantedBy=multi-user.target

    Speichern und beenden.

    Laden Sie den systemd-Dienst neu und starten Sie seafile und seahub mit systemctl.

    systemctl daemon-reload
    systemctl start seafile
    systemctl start seahub

    Stellen Sie sicher, dass kein Fehler vorliegt, und prüfen Sie, ob der Seafile- und Seahub-Dienst auf den Ports 8082 und 8000 ausgeführt wird.

    netstat -plntu

    Schritt 6 – Generieren Sie SSL-Zertifikatsdateien

    Für dieses Tutorial führen wir Seafile über einen Nginx-Proxy aus, und Nginx stellt sichere (HTTPS) Verbindungen für die Datensicherheit bereit. Wir können eine kostenlose SSL-Zertifikatsdatei oder das kostenpflichtige SSL-Zertifikat verwenden, dies spielt für die Konfiguration keine Rolle. In diesem Schritt erzeuge ich eine selbstsignierte SSL-Zertifikatsdatei mit OpenSSL im Verzeichnis „/etc/nginx/ssl“.

    Erstellen Sie das SSL-Verzeichnis.

    mkdir -p /etc/nginx/ssl
    cd /etc/nginx/ssl

    Generieren Sie selbstsignierte Zertifikatsdateien und eine dhparam-Datei mit dem folgenden Befehl:

    openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
    openssl req -new -x509 -sha256 -days 365 -newkey rsa:2048 -nodes -keyout server.key -out server.crt

    Beantworten Sie die von OpenSSL angeforderten Zertifikatsdetails wie Ihren Namen, Ihr Bundesland, Ihre E-Mail-Adresse, Ihren Domänennamen usw. Ändern Sie dann die Berechtigungen des Verzeichnisses und der Zertifikatsdateien.

    chmod -R 700 /etc/nginx/ssl
    chmod 400 server.*
    chmod 400 dhparam.pem

    Die SSL-Zertifikatsdateien wurden generiert.

    Schritt 7 – Konfigurieren Sie Nginx als Reverse-Proxy

    In diesem Schritt konfigurieren wir Nginx als Reverse-Proxy für den Seafile-Server auf Port 8000 und 8002.

    Gehen Sie in das nginx-Konfigurationsverzeichnis und erstellen Sie eine neue virtuelle Hostdatei für seafile.

    cd /etc/nginx/
    vim conf.d/seafile.conf

    Fügen Sie die Konfiguration des virtuellen Hosts unten ein:

    server {  
            listen        80;
            server_name   cloud.natsume.co;
            return 301  https://$host$request_uri;
    }

    server { 
        listen 443 ssl;
        server_name cloud.natsume.co;
        ssl on;
        ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
        ssl_certificate         /etc/nginx/ssl/server.crt;
        ssl_certificate_key    /etc/nginx/ssl/server.key;

        ssl_ciphers  'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
        ssl_dhparam   /etc/nginx/ssl/dhparam.pem;
        ssl_prefer_server_ciphers  on;

        location / {
            fastcgi_pass    127.0.0.1:8000;
            fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
            fastcgi_param   PATH_INFO           $fastcgi_script_name;

            fastcgi_param   SERVER_PROTOCOL        $server_protocol;
            fastcgi_param   QUERY_STRING        $query_string;
            fastcgi_param   REQUEST_METHOD      $request_method;
            fastcgi_param   CONTENT_TYPE        $content_type;
            fastcgi_param   CONTENT_LENGTH      $content_length;
            fastcgi_param   SERVER_ADDR         $server_addr;
            fastcgi_param   SERVER_PORT         $server_port;
            fastcgi_param   SERVER_NAME         $server_name;
            fastcgi_param   REMOTE_ADDR         $remote_addr;

            access_log      /var/log/nginx/seahub.access.log;
            error_log       /var/log/nginx/seahub.error.log;
            fastcgi_read_timeout 36000;
        }

        # Reverse Proxy for seahub
        location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            client_max_body_size 0;
            proxy_connect_timeout  36000s;
            proxy_read_timeout  36000s;
            proxy_send_timeout  36000s;
            send_timeout  36000s;
        }

        #CHANGE THIS PATH WITH YOUR OWN DIRECTORY
        location /media {
            root /var/www/seafile/seafile-server/seahub;
        }

    }

    Speichern und beenden.

    Ich werde „cloud.natsume.co“ als Domainnamen verwenden. Bitte ersetzen Sie diesen in der obigen Konfiguration durch Ihren eigenen Domainnamen.

    Testen Sie nun die Nginx-Konfiguration und stellen Sie sicher, dass keine Fehler vorliegen.

    nginx -t

    Starten Sie Nginx mit dem systemctl-Befehl:

    systemctl start nginx

    Stellen Sie sicher, dass Port 80 und 443 in der von netstat bereitgestellten Liste verfügbar sind:

    netstat -plntu

    Als nächstes müssen wir den Domänennamen zur Seafile-Konfiguration hinzufügen. Gehen Sie in das Seafile-Verzeichnis und bearbeiten Sie die Konfigurationsdatei.

    cd /var/www/seafile/
    vim conf/ccnet.conf

    Ändern Sie die Dienst-URL in Ihren Domänennamen.

    SERVICE_URL = https://cloud.natsume.co

    Speichern und beenden.

    Bearbeiten Sie die Seahub-Konfigurationsdatei.

    vim conf/seahub_settings.py

    Fügen Sie in der zweiten Zeile die folgende Konfiguration hinzu:

    HTTP_SERVER_ROOT = 'https://cloud.natsume.co/seafhttp'

    Ersetzen Sie hier wieder den Domainnamen durch Ihre Domain. Speichern und beenden.

    Starten Sie Seafile neu und fügen Sie alle Dienste hinzu, die beim Booten gestartet werden sollen:

    systemctl restart seafile
    systemctl restart seahub

    systemctl enable nginx
    systemctl enable mariadb
    systemctl enable seafile
    systemctl enable seahub

    Schritt 8 – FirewallD konfigurieren

    In Schritt 7 haben wir Nginx so konfiguriert, dass es den HTTP- und den HTTPS-Port verwendet. Jetzt müssen wir diese Ports in der Firewall öffnen, indem wir sie zu firewalld hinzufügen.

    Firewalld starten.

    systemctl start firewalld
    systemctl enable firewalld

    Fügen Sie den HTTP- und HTTPS-Port mit dem folgenden Befehl firewall-cmd zur Firewall-Konfiguration hinzu:

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --zone=public --add-port=443/tcp --permanent

    Laden Sie die Firewall-Konfiguration neu und überprüfen Sie die Portliste.

    firewall-cmd --reload
    firewall-cmd --list-all

    Schritt 9 - Seafile testen

    Öffnen Sie Ihren Browser, geben Sie den Seafile-Domainnamen ein, in meinem Fall cloud.natsume.co, und Sie werden zur https-Verbindung weitergeleitet.

    Geben Sie Ihre Admin-E-Mail-Adresse und Ihr Passwort ein und klicken Sie auf „Anmelden“.

    Seafile-Admin-Dashboard:

    Seafile-Dateiansicht.

    Seafile mit Nginx als Reverse Proxy und SSL wurde erfolgreich auf dem CentOS 7-Server installiert.

    Schlussfolgerung

    Bei der großen Vielfalt an Cloud-Anwendungen von heute ist Seafile eine private Cloud-Lösung, die für den Einsatz in der heutigen Zeit gut geeignet ist. Mit der Verschlüsselungsfunktion auf Bibliotheks-/Ordnerebene können Sie Ihre Daten sicher auf einem Seacloud-Server speichern. Außerdem ist Seafile einfach zu konfigurieren und auf Ihrem eigenen Server zu implementieren.


    Cent OS
    1. So installieren Sie Nginx unter CentOS 7

    2. So installieren Sie WordPress mit Nginx unter CentOS 7

    3. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7

    4. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7 / RHEL 7

    5. So installieren Sie Sitemagic CMS auf CentOS 7 – mit Nginx

    So installieren Sie phpMyAdmin mit Nginx unter CentOS 8 / RHEL 8

    So installieren Sie Nginx mit ngx_pagespeed unter CentOS

    So installieren Sie Nginx mit PHP-FastCGI unter CentOS 6

    So installieren Sie Magento mit Nginx unter CentOS 7

    So installieren Sie Laravel mit Nginx unter CentOS 8

    Wie installiere ich Nginx unter CentOS 7?