GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal Seafile dengan Nginx di CentOS 7

Seafile adalah perangkat lunak cloud pribadi yang menyediakan fitur serupa seperti Dropbox, mega.co.nz, dan lainnya, hanya dihosting di server Anda sendiri. Seafile didasarkan pada bahasa pemrograman python dan dirilis di bawah lisensi open source sehingga Anda dapat membuat cloud pribadi Anda sendiri dan itu akan jauh lebih aman.

Seafile mendukung enkripsi untuk menyimpan data Anda dengan aman. Untuk mengenkripsi file di perpustakaan penyimpanan, Anda perlu mengatur kata sandi saat membuat perpustakaan. Kata sandi tidak akan disimpan di cloud Seafile. Jadi, bahkan administrator server tidak dapat melihat data terenkripsi Anda tanpa kata sandi.

Dalam tutorial ini, saya akan menginstal Seafile di CentOS 7 dengan web server Nginx dan MariaDB sebagai database server.

Prasyarat

  • Server CentOS 7
  • Hak istimewa root

Langkah 1 - Siapkan CentOS untuk Seafile

Masuk ke server centOS dengan kata sandi root ssh Anda.

ssh [email protected]
TYPE YOUR PASSWORD

    Edit file konfigurasi SELinux dengan vim.

    vim /etc/sysconfig/selinux

    Ganti nilai 'enforcing' dengan 'disabled'.

    SELINUX=disabled

    Simpan file dan keluar dari editor.

    Reboot server untuk menerapkan perubahan kebijakan SELinux.

    reboot

    Tunggu server di-boot ulang, lalu login kembali ke server Anda sebagai pengguna root.

    Periksa selinux dengan perintah di bawah ini:

    getenforce

    Anda akan melihat 'Dinonaktifkan ' sebagai hasilnya.

    Langkah 2 - Instal Ketergantungan Seafile

    Seafile didasarkan pada python, jadi kita perlu menginstal python untuk instalasi terlebih dahulu. Seafile memiliki dukungan untuk database SQLite dan MySQL/MariaDB, saya akan menggunakan MariaDB sebagai database untuk seafile di sini karena memberikan kinerja yang lebih baik daripada SQLite. Nginx digunakan sebagai proxy terbalik untuk Seafile dan Seahub.

    Pada langkah ini, kita akan menginstal beberapa paket python, MariaDB dan Nginx. Kami mulai dengan instalasi repositori EPEL di server CentOS kami.

    yum -y install epel-release

    Selanjutnya, instal python paket, MariaDB dan Nginx.

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

    Tunggu hingga semua paket terinstal.

    Langkah 3 - Konfigurasi MariaDB

    Pada langkah 2, kita sudah menginstal server MariaDB, kita hanya perlu memulai layanan dan mengkonfigurasi kata sandi root sekarang.

    Mulai MariaDB dan konfigurasikan kata sandi root dengan perintah di bawah ini:

    systemctl start mariadb
    mysql_secure_installation

    Ketikkan kata sandi root Anda.

    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

    Kata sandi root MariaDB telah dikonfigurasi dan kita dapat masuk ke shell mysql sekarang.
    Pemberitahuan:Shell baris perintah MariaDB diberi nama mysql.

    Kami akan membuat 3 database untuk seafile:

    1. ccnet_db
    2. seafile_db
    3. seahub_db

    Dan kami akan membuat pengguna baru 'seacloud ' dengan kata sandi 'kata sandi Anda '. Ganti kata sandi Anda dengan kata sandi yang aman!

    Masuk ke shell mysql dengan klien mysql.

    mysql -u root -p
    TYPE YOUR PASSWORD

    Jalankan kueri mysql di bawah untuk membuat database dan pengguna untuk instalasi 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

    Ganti kata sandi Anda pada perintah di atas dengan kata sandi Anda sendiri.

    Langkah 4 - Instal Seafile

    Pada langkah ini, kita akan menginstal Seafile. Seafile akan dieksekusi di bawah pengguna nginx sehingga kita dapat menggunakan nginx sebagai proxy terbalik untuk layanan seafile dan seahub.

    Kami akan menginstal seafile di bawah pengguna nginx di direktori '/var/www/seafile', buat direktori itu dan masukkan dengan cd.

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

    Unduh Seafile dengan perintah wget, dan ekstrak arsip yang diunduh.

    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

    Ubah nama direktori menjadi 'seafile-server' dan alihkan ke direktori tersebut.

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

    Jalankan file 'setup-seafile-mysql.sh' untuk mengkonfigurasi database.

    ./setup-seafile-mysql.sh

    Tekan Enter dan Anda akan dimintai informasi di bawah ini:

    • nama server - Saya akan menggunakan nama host server 'natsume '
    • ip atau domain server - alamat ip server, dalam kasus saya '192.168.1.115 '
    • direktori data default - cukup tekan Enter
    • port default - tekan Enter
    • Sekarang untuk konfigurasi database, pilih angka 2

    Untuk konfigurasi MySQL:

    • gunakan host default - localhost
    • porta bawaan - 3306
    • pengguna mysql - 'seacloud '
    • dan sandinya adalah 'sandi Anda '
    • basis data ccnet adalah 'ccnet_db '
    • basis data seafile adalah 'seafile_db '
    • basis data seahub adalah 'seahub_db '

    Tekan enter dan skrip akan membuat tabel database untuk file laut.

    Sekarang kita dapat memulai layanan seafile dan seahub.

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

    Ketika file seahub.sh dijalankan, kita akan ditanya konfigurasi admin.

    Ketik email admin dan password, maka layanan seahub akan berjalan.

    Seafile diinstal dan berjalan sekarang, kita dapat mengakses Seafile dari browser web dengan IP server pada port 8000 (dalam kasus saya - 192.168.1.115:8000), tetapi kami tidak akan melakukannya sekarang karena kami akan menggunakan proxy terbalik untuk server seafile dan kami akan menjalankan seafile dengan file layanan systemd.

    Jadi kami harus menghentikan layanan seafile dan seahub untuk saat ini.

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

    Langkah 5 - Konfigurasikan Layanan Seafile dan Seahub

    Kita akan menjalankan seafile sebagai pengguna nginx, jadi kita perlu mengubah pemilik direktori instalasi seafile dan direktori seahub_cache menjadi pengguna nginx:

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

    Selanjutnya, buka direktori systemd dan buat file seafile.service dengan vim:

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

    Tempel konfigurasi layanan seafile di bawah ini:

    [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

    Simpan dan keluar.

    Sekarang buat file seahub.service baru.

    vim seahub.service

    Dan rekatkan konfigurasi di bawah ini.

    [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

    Simpan dan keluar.

    Muat ulang layanan systemd dan mulai seafile dan seahub dengan systemctl.

    systemctl daemon-reload
    systemctl start seafile
    systemctl start seahub

    Pastikan tidak ada error dan periksa apakah layanan seafile dan seahub berjalan di port 8082 dan 8000.

    netstat -plntu

    Langkah 6 - Buat File Sertifikat SSL

    Untuk tutorial ini, kita akan menjalankan seafile melalui proxy Nginx, dan Nginx akan menyediakan koneksi aman (HTTPS) untuk keamanan data. Kita bisa menggunakan file sertifikat SSL gratis atau sertifikat SSL berbayar, ini tidak masalah untuk konfigurasinya. Pada langkah ini, saya akan membuat file sertifikat SSL yang ditandatangani sendiri dengan OpenSSL di direktori '/etc/nginx/ssl'.

    Buat direktori ssl.

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

    Hasilkan file sertifikat yang ditandatangani sendiri dan file dhparam dengan perintah di bawah ini:

    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

    Jawab detail sertifikat seperti yang diminta oleh OpenSSL seperti nama, negara bagian, email, nama domain, dll. Kemudian ubah izin direktori dan file sertifikat.

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

    File sertifikat SSL telah dibuat.

    Langkah 7 - Konfigurasi Nginx sebagai Proxy Terbalik

    Pada langkah ini, kita akan mengonfigurasi Nginx sebagai proxy terbalik untuk seafile-server pada port 8000 dan 8002.

    Buka direktori konfigurasi nginx dan buat file host virtual baru untuk seafile.

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

    Tempel konfigurasi host virtual di bawah ini:

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

    }

    Simpan dan keluar.

    Saya akan menggunakan 'cloud.natsume.co' sebagai nama domain. Silakan ganti dengan nama domain Anda sendiri pada konfigurasi di atas.

    Sekarang uji konfigurasi Nginx dan pastikan tidak ada kesalahan.

    nginx -t

    Mulai Nginx dengan perintah systemctl:

    systemctl start nginx

    Pastikan port 80 dan 443 tersedia dalam daftar yang disediakan netstat:

    netstat -plntu

    Selanjutnya, kita harus menambahkan nama domain ke konfigurasi seafile. Buka direktori seafile dan edit file konfigurasi.

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

    Ubah URL layanan menjadi nama domain Anda.

    SERVICE_URL = https://cloud.natsume.co

    Simpan dan keluar.

    Edit file konfigurasi seahub.

    vim conf/seahub_settings.py

    Pada baris kedua, tambahkan konfigurasi di bawah ini:

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

    Ganti nama domain dengan domain Anda di sini lagi. Simpan dan keluar.

    Mulai ulang seafile dan tambahkan semua layanan untuk memulai saat boot:

    systemctl restart seafile
    systemctl restart seahub

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

    Langkah 8 - Konfigurasi FirewallD

    Pada langkah 7, kami telah mengonfigurasi Nginx untuk menggunakan port HTTP dan HTTPS. Sekarang kita harus membuka port tersebut di Firewall dengan menambahkannya ke firewalld.

    Mulai firewalld.

    systemctl start firewalld
    systemctl enable firewalld

    Tambahkan port HTTP dan HTTPS ke konfigurasi firewall dengan perintah firewall-cmd di bawah ini:

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

    Muat ulang konfigurasi firewall dan periksa daftar port.

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

    Langkah 9 - Menguji Seafile

    Buka browser Anda, ketik nama domain seafile, dalam kasus saya cloud.natsume.co dan Anda akan diarahkan ke koneksi https.

    Ketik email dan kata sandi admin Anda, lalu klik 'Masuk'.

    Dasbor admin Seafile:

    Tampilan file file laut.

    Seafile dengan Nginx sebagai Reverse Proxy dan SSL telah berhasil diinstal pada server CentOS 7.

    Kesimpulan

    Dengan beragamnya aplikasi cloud saat ini, Seafile adalah solusi cloud pribadi yang baik untuk digunakan saat ini. Dengan fitur enkripsi di tingkat perpustakaan/folder, Anda dapat menyimpan data Anda dengan aman di server Seacloud. Selain itu, Seafile mudah dikonfigurasi dan diterapkan di server Anda sendiri.


    Cent OS
    1. Cara Menginstal Nginx di CentOS 7

    2. Cara Instal phpMyAdmin dengan Nginx di CentOS 7 / RHEL 7

    3. Cara Memasang Sitemagic CMS di CentOS 7 – Dengan Nginx

    1. Cara Menginstal WordPress dengan Nginx di CentOS 7

    2. Cara Instal phpMyAdmin dengan Nginx di CentOS 7

    3. Cara Menginstal Nginx di CentOS 8

    1. Cara Menginstal Nginx dengan Modul RTMP di CentOS 7

    2. Cara Menginstal Nextcloud dengan Nginx dan PHP 7.3 di CentOS 8

    3. Cara Menginstal ownCloud 9.1 dengan Nginx dan MariaDB di CentOS 7