GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Seafile s Nginx na CentOS 7

Seafile je software soukromého cloudu, který poskytuje podobné funkce jako Dropbox, mega.co.nz a další, pouze hostovaný na vašem vlastním serveru. Seafile je založen na programovacím jazyce python a je vydán pod licencí open source, takže si můžete vytvořit svůj vlastní privátní cloud a bude mnohem bezpečnější.

Seafile podporuje šifrování pro bezpečné uložení vašich dat. Chcete-li šifrovat soubory v knihovně úložiště, musíte při vytváření knihovny nastavit heslo. Heslo nebude uloženo v cloudu Seafile. Takže ani správce serverů nemůže zobrazit vaše šifrovaná data bez hesla.

V tomto tutoriálu nainstaluji Seafile na CentOS 7 s webovým serverem Nginx a databázovým serverem MariaDB.

Předpoklady

  • Server CentOS 7
  • Oprávnění uživatele root

Krok 1 – Příprava CentOS na Seafile

Přihlaste se k serveru centOS pomocí svého ssh root hesla.

ssh [email protected]
TYPE YOUR PASSWORD

    Upravte konfigurační soubor SELinux pomocí vim.

    vim /etc/sysconfig/selinux

    Hodnotu 'vynucování' nahraďte 'disabled'.

    SELINUX=disabled

    Uložte soubor a ukončete editor.

    Restartujte server, abyste použili změnu zásad SELinux.

    reboot

    Počkejte na restartování serveru a poté se znovu přihlaste k serveru jako uživatel root.

    Zkontrolujte selinux pomocí příkazu níže:

    getenforce

    Měli byste vidět „Zakázáno ' jako výsledek.

    Krok 2 – Instalace závislostí Seafile

    Seafile je založen na pythonu, takže pro instalaci musíme nejprve nainstalovat python. Seafile podporuje databáze SQLite a MySQL/MariaDB, jako databázi pro seafile zde použiji MariaDB, protože poskytuje lepší výkon než SQLite. Nginx se používá jako reverzní proxy pro Seafile a Seahub.

    V tomto kroku nainstalujeme několik pythonových balíčků, MariaDB a Nginx. Začneme instalací úložiště EPEL na náš server CentOS.

    yum -y install epel-release

    Dále nainstalujte balíčky python, MariaDB a Nginx.

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

    Počkejte, až se nainstalují všechny balíčky.

    Krok 3 – Konfigurace MariaDB

    V kroku 2 jsme již nainstalovali server MariaDB, stačí spustit službu a nakonfigurovat heslo uživatele root.

    Spusťte MariaDB a nakonfigurujte heslo uživatele root pomocí příkazů níže:

    systemctl start mariadb
    mysql_secure_installation

    Zadejte heslo uživatele root.

    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

    Kořenové heslo MariaDB je nakonfigurováno a nyní se můžeme přihlásit do prostředí mysql.
    Upozornění:Příkazový řádek MariaDB se jmenuje mysql.

    Vytvoříme 3 databáze pro seafile:

    1. ccnet_db
    2. seafile_db
    3. seahub_db

    A vytvoříme nového uživatele 'seacloud s heslem 'vaše heslo '. Nahraďte své heslo bezpečným heslem!

    Přihlaste se do prostředí mysql pomocí klienta mysql.

    mysql -u root -p
    TYPE YOUR PASSWORD

    Spuštěním dotazů mysql níže vytvořte databáze a uživatele pro instalaci seafile.

    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

    Nahraďte své heslo ve výše uvedených příkazech svým vlastním heslem.

    Krok 4 – Instalace Seafile

    V tomto kroku nainstalujeme Seafile. Seafile bude spuštěn pod uživatelem nginx, takže můžeme použít nginx jako reverzní proxy pro služby seafile a seahub.

    Nainstalujeme seafile pod uživatelem nginx do adresáře '/var/www/seafile', vytvoříme tento adresář a vstoupíme do něj pomocí cd.

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

    Stáhněte si Seafile pomocí příkazu wget a rozbalte stažený 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

    Přejmenujte adresář na 'seafile-server' a přepněte se do tohoto adresáře.

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

    Pro konfiguraci databáze spusťte soubor 'setup-seafile-mysql.sh'.

    ./setup-seafile-mysql.sh

    Stiskněte Enter a budete požádáni o informace níže:

    • název serveru – budu používat název hostitele serveru 'natsume '
    • IP nebo doména serveru – IP adresa serveru, v mém případě '192.168.1.115 '
    • výchozí datový adresář – stačí stisknout Enter
    • výchozí port – stiskněte klávesu Enter
    • Nyní pro konfiguraci databáze zvolte číslo 2

    Pro konfiguraci MySQL:

    • použijte předvoleného hostitele – localhost
    • výchozí port – 3306
    • uživatel mysql – 'seacloud '
    • a heslo je „vaše heslo '
    • databáze ccnet je 'ccnet_db '
    • databáze seafile je 'seafile_db '
    • databáze seahub je 'seahub_db '

    Stiskněte enter a skript vytvoří databázové tabulky pro mořský soubor.

    Nyní můžeme spustit služby seafile a seahub.

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

    Když je soubor seahub.sh spuštěn, budeme požádáni o konfiguraci správce.

    Zadejte svůj e-mail a heslo správce a služba seahub se spustí.

    Seafile je nyní nainstalován a spuštěn, k Seafile můžeme přistupovat z webového prohlížeče s IP serverem na portu 8000 (v mém případě - 192.168.1.115:8000), ale nyní to neuděláme, protože použijeme reverzní proxy pro seafile server a spustíme seafile se souborem služby systemd.

    Takže musíme prozatím zastavit službu seafile a seahub.

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

    Krok 5 – Konfigurace služby Seafile a Seahub

    Spustíme seafile jako uživatel nginx, takže musíme změnit vlastníka instalačního adresáře seafile a adresáře seahub_cache na uživatele nginx:

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

    Dále přejděte do adresáře systemd a vytvořte soubor seafile.service pomocí vim:

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

    Níže vložte konfiguraci služby seafile:

    [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

    Uložte a ukončete.

    Nyní vytvořte nový soubor seahub.service.

    vim seahub.service

    A vložte konfiguraci níže.

    [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

    Uložte a ukončete.

    Znovu načtěte službu systemd a spusťte seafile a seahub pomocí systemctl.

    systemctl daemon-reload
    systemctl start seafile
    systemctl start seahub

    Ujistěte se, že nedošlo k chybě a zkontrolujte, zda služba seafile a seahub běží na portu 8082 a 8000.

    netstat -plntu

    Krok 6 – Vygenerování souborů certifikátu SSL

    V tomto tutoriálu spustíme seafile přes proxy Nginx a Nginx poskytne zabezpečené připojení (HTTPS) pro zabezpečení dat. Můžeme použít bezplatný soubor certifikátu SSL nebo placený certifikát SSL, na konfiguraci nezáleží. V tomto kroku vygeneruji soubor certifikátu SSL s vlastním podpisem s OpenSSL v adresáři '/etc/nginx/ssl'.

    Vytvořte adresář ssl.

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

    Vygenerujte soubory certifikátů s vlastním podpisem a soubor dhparam pomocí příkazu níže:

    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

    Odpovězte na podrobnosti certifikátu požadované OpenSSL, jako je vaše jméno, stát, e-mail, název domény atd. Poté změňte oprávnění adresáře a souborů certifikátu.

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

    Soubory certifikátu SSL byly vygenerovány.

    Krok 7 – Konfigurace Nginx jako reverzního proxy

    V tomto kroku nakonfigurujeme Nginx jako reverzní proxy pro server seafile na portu 8000 a 8002.

    Přejděte do konfiguračního adresáře nginx a vytvořte nový soubor virtuálního hostitele pro seafile.

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

    Níže vložte konfiguraci virtuálního hostitele:

    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;
        }

    }

    Uložte a ukončete.

    Jako název domény použiji 'cloud.natsume.co'. Nahraďte jej prosím svým vlastním názvem domény ve výše uvedené konfiguraci.

    Nyní otestujte konfiguraci Nginx a ujistěte se, že neexistují žádné chyby.

    nginx -t

    Spusťte Nginx pomocí příkazu systemctl:

    systemctl start nginx

    Ujistěte se, že porty 80 a 443 jsou dostupné v seznamu, který poskytuje netstat:

    netstat -plntu

    Dále musíme přidat název domény do konfigurace seafile. Přejděte do adresáře seafile a upravte konfigurační soubor.

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

    Změňte adresu URL služby na název své domény.

    SERVICE_URL = https://cloud.natsume.co

    Uložte a ukončete.

    Upravte konfigurační soubor seahub.

    vim conf/seahub_settings.py

    Na druhém řádku přidejte konfiguraci níže:

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

    Zde znovu nahraďte název domény svou doménou. Uložte a ukončete.

    Restartujte seafile a přidejte všechny služby, které se mají spustit při spuštění:

    systemctl restart seafile
    systemctl restart seahub

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

    Krok 8 – Konfigurace FirewallD

    V kroku 7 jsme nakonfigurovali Nginx tak, aby používal port HTTP a HTTPS. Nyní musíme otevřít tyto porty ve Firewallu jejich přidáním do firewalld.

    Spusťte firewall.

    systemctl start firewalld
    systemctl enable firewalld

    Přidejte port HTTP a HTTPS do konfigurace brány firewall pomocí příkazu firewall-cmd níže:

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

    Znovu načtěte konfiguraci brány firewall a zkontrolujte seznam portů.

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

    Krok 9 – Testování Seafile

    Otevřete prohlížeč, zadejte název domény seafile, v mém případě cloud.natsume.co, a budete přesměrováni na připojení https.

    Zadejte svůj administrátorský e-mail a heslo a klikněte na 'Přihlásit se'.

    Hlavní panel správce Seafile:

    Zobrazení souboru Seafile.

    Seafile s Nginx jako Reverse Proxy a SSL byl úspěšně nainstalován na server CentOS 7.

    Závěr

    Se širokou škálou dnešních cloudových aplikací je Seafile řešením privátního cloudu, které se dnes hodí. Pomocí funkce šifrování na úrovni knihovny/složky můžete svá data bezpečně ukládat na server Seacloud. Kromě toho lze Seafile snadno konfigurovat a implementovat na vašem vlastním serveru.


    Cent OS
    1. Jak nainstalovat Nginx na CentOS 7

    2. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7 / RHEL 7

    3. Jak nainstalovat Sitemagic CMS na CentOS 7 – s Nginx

    1. Jak nainstalovat WordPress s Nginx na CentOS 7

    2. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

    3. Jak nainstalovat Nginx na CentOS 8

    1. Jak nainstalovat Nginx s modulem RTMP na CentOS 7

    2. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8

    3. Jak nainstalovat ownCloud 9.1 s Nginx a MariaDB na CentOS 7