Seafile mit NGINX und MySQL unter Debian installieren

Seafile ist eine Open Source Software mit der man seine eigene (selbst gehostete) Cloud zum Austausch von Dateien, Zusammenarbeit mit Anderen und noch mehr betreiben kann – eine Alternative zu Diensten wie Dropbox, OneDrive oder Google Drive.

Ich werde hier die Einrichtung von Seafile auf einem Debian-System (aktuell 7.5) mit NGINX als Webserver und MySQL als Datenbank beschreiben. Dazu werde ich noch beschreiben wie man die Zugriffe mit SSL (HTTPS) verschlüsselt und so einen sicheren Zugriff auf die Daten gewährt. Ich mache das hier ein bischen ausführlicher und immer Schritt für Schritt – sollte so für jeden nachzubauen sein

1) Voraussetzungen

Zu erst installieren wir alle Pakete die wir für unsere Installation benötigen. Dazu melden wir uns als root an

su

apt-get update && apt-get upgrade

apt-get install mysql-server mysql-client python2.7 python-setuptools python-simplejson python-imaging python-mysqldb python-flup nginx openssl vim sudo tree

Das bei der Installation abgefragte MySQL-Root-Kennwort sollte nicht das Kennwort des root-Benutzers sein und natürlich sicher.

Danach erstelle ich einen eigenen unpriviligierten Benutzer ohne Kennwort.

adduser seafile --disabled-password

jetzt wechseln wir in das Home-Ordner des Users seafile

cd /home/seafile

Danach wird angelehnt an die Empfehlung von Seafile ein Ordner erstellt

mkdir installed

und das aktuelle Installationspaket (zum Zeitpunkt der Anleitung die 3.0.4) für die entsprechende Architektur – x86 (32 Bit) oder x86_64 (64 Bit) – heruntergeladen. Falls man sich nicht sicher ist kann man die Architektur mit uname -m auslesen. In meinem Fall das 64-Bit-Paket:

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz

Danach entpacken wir das ganze

tar -xzf seafile-server_3.0.4_x86-64.tar.gz

und verschieben das Installationspaket in den installed-Ordner

mv seafile-server_3.0.4_x86-64.tar.gz installed

2) Installation

Nachdem die Vorbereitungen durch sind können wir zu eigentlichen Installation starten

./seafile-server-3.0.4/setup-seafile-mysql.sh

Folgende Angaben (hervorgehoben) wären noch anzupassen – ansonsten kann immer der Default-Wert mit Enter übernommen werden:

[lightgrey_box]
[ server name ] servername

[ This server’s ip or domain ] servername.domain.de

——————————————————-
Please choose a way to initialize seafile databases:
——————————————————-
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
[ 1 or 2 ] 1

Enter the name for mysql user of seafile. It would be created if not exists.
[ default „root“ ] seafile

Enter the password for mysql user „seafile“:
[ password for seafile ] EinSicheresKennwort
[/lightgrey_box]

Unbedingt “root” nicht als MySQL-Benutzer für Seafile benutzen!

Jetzt muss noch eine Limit aufgehoben werden

ulimit -n 30000

Danach starten wir die Seafile-Server zum ersten mal

./seafile-server-3.0.4/seafile.sh start
./seafile-server-3.0.4/seahub.sh start

Beim ersten mal starten fragt das Script nach einem Admin-Account – eine eMail-Adresse und ein sicheres Kennwort verwenden.

[lightgrey_box]
—————————————-
It’s the first time you start the seafile server. Now let’s create the admin account
—————————————-

What is the email for the admin account?
[ admin email ] admin@domain.de

What is the password for the admin account?
[ admin password ]SicheresKennwot

Enter the password again:
[ admin password again ] SicheresKennwort
[/lightgrey_box]

Danach sollte man sich unter http://servername.domain.de:8000 folgendes Portal sehen und sich einlogen können

seafile

Damit ist die Grundkonfiguration von Seafile abgeschlossen

2) NGINX konfigurieren

Jetzt kümmern wir uns um den NGINX. Erstmal starten wir den Dienst durch

service nginx start

Danach sollte der der Aufruf von http://servername.domain.de das NGINX-Testportal „Welcome to nginx!“ kommen. Wenn das klappt können wir weitermachen.

Wir erstellen für Seafile eine Konfigurationsdatei

vim /etc/nginx/sites-available/seafile

und geben hier folgendes ein (Der Eintrag server_name ist natürlich anzupassen. Der Pfad zur Seafile sollte passen wenn bisher die Anleitung befolgt wurde)

server {
    listen 80;
    server_name servername.domain.de;
    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;
    }

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;
    }

    location /media {
        root /home/seafile/seafile-server-latest/seahub;
    }
}

Danach schalten wir die Konfig-Datei noch „scharf“

ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/seafile

rm /etc/nginx/sites-enabled/default

In den Seafile-Konfigurationsdateien müssen noch kleine Anpassungen gemacht werden.
Einmal in der ccnet.conf:

vim /home/seafile/ccnet/ccnet.conf

Hier muss der Eintrag SERVICE_URL auf unsere URL geändert werden: SERVICE_URL = http://servername.domain.de

Und einmal in der seahub_settings.py:

vim /home/seafile/seahub_settings.py

Hier muss der Eintrag FILE_SERVER_ROOT = ‚http://servername.domain.de/seafhttp‘ an das Ende der Datei angefügt werden. Also sieht die Datei dann zum Beispiel so aus (Nur ein Beispielt – nicht kopieren – und die letzte Zeile hinzufügen):

SECRET_KEY = "46d3d6ff-e7cd-407a-aeb0-5520bfb53bea2e81"

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'seahub-db',
        'USER': 'seafile',
        'PASSWORD': 'seafile',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': 'SET storage_engine=INNODB',
        }
    }
}

FILE_SERVER_ROOT = 'http://servername.domain.de/seafhttp'

Jetzt restarten wir die Seafile-Dienste

./seafile-server-latest/seahub.sh stop
./seafile-server-latest/seafile.sh stop
./seafile-server-latest/seafile.sh start
./seafile-server-latest/seahub.sh start-fastcgi
service nginx reload

Jetzt sollte beim Aufruf von http://servername.domain.de das Seafile-Webinterface erscheinen. Ein Aufruf von http://seafile.domain.de:8000 sollte nicht mehr funktionieren! Einfach mal einlogen und testen……

Somit haben wir unsere Seafile-Installation hinter einem NGINX „versteckt“.

3) HTTPS konfigurieren

Jetzt wo unser Seafile hinter dem NGINX sauber funktioniert müssen wir uns noch umd die Sicherheit kümmern. Ein öffentlich zugänlicher Servie (eigentlich kein Service) sollte nur über HTTPS erreichbar sein damit Login-Daten (Username und Passwort) und auch die Daten selbst nicht unverschlüsselt im Internet übertragen werden. In unserem Beispiel verwenden wir ein selbstsigniertes Zertifikat (wir erstellen das Zertifikat also selbst). Natürlich kann -und sollte – auch von einer Zertifzierungsstelle ein Zertifikat verwendet werden (kostenlos wäre z.B. https://www.startssl.com/?lang=de).

Zuerst erstellen wir das Zertifikat


cd ~
openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

Die Fragen des Assistenten beantworten – Beispielhaft hier:
[lightgrey_box]
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‚.‘, the field will be left blank.
—–
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:BY
Locality Name (eg, city) []:Testhausen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Domain GmbH
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:servername.domain.de
Email Address []:mail@domain.de
[/lightgrey_box]

Danach kopieren wir die Dateien in einen neu zu erstellenden Ordner der NGINX-Installation

mkdir /etc/nginx/certs
cp *.pem /etc/nginx/certs/

Jetzt müssen wir noch drei Konfig-Dateien anpassen. Wir fangen an mit der NGINX-Konfig-Datei

rm /etc/nginx/sites-available/seafile
vim /etc/nginx/sites-available/seafile

und kopieren foldenden Inhalt – natürlich wieder mit anzupassenden Servernamen

server {
      listen       80;
      server_name  servername.domain.de;
      rewrite ^ https://$server_name$request_uri? permanent;	# force redirect http to https
  }
  server {
      listen 443;
      ssl on;
      ssl_certificate /etc/nginx/certs/cacert.pem;            # path to your cacert.pem
      ssl_certificate_key /etc/nginx/certs/privkey.pem;	# path to your privkey.pem
      server_name servername.domain.de;
      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   HTTPS               on;
          fastcgi_param   HTTP_SCHEME         https;

          access_log      /var/log/nginx/seahub.access.log;
  	    error_log       /var/log/nginx/seahub.error.log;
      }
      location /seafhttp {
          rewrite ^/seafhttp(.*)$ $1 break;
          proxy_pass http://127.0.0.1:8082;
          client_max_body_size 0;
      }
      location /media {
          root /home/seafile/seafile-server-latest/seahub;
      }
  }

Jetzt noch in den beiden Seafile-Konfig-Dateien die URLS auf https umstellen

vim /home/seafile/ccnet/ccnet.conf

Hier den Eintrag SERVICE_URL = http://servername.domain.de ändern auf SERVICE_URL = https://servername.domain.de

vim /home/seafile/seahub_settings.py

Hier den Eintrag FILE_SERVER_ROOT = ‚http://servername.domain.de/seafhttp‘ ändern auf FILE_SERVER_ROOT = ‚https://servername.domain.de/seafhttp‘

Damit in den Freigabe-Links auch die richtige URL steht muss man noch die ccnet.info anpassen:

vim /home/seafile/ccnet/ccnet.conf

Hier den Eintrag SERVICE_URL = https://servername.domain.de:8000 auf SERVICE_URL = https://servername.domain.de ändern.

Danach starten wir wieder unsere Dienste durch

/home/seafile/seafile-server-latest/seahub.sh stop
/home/seafile/seafile-server-latest/seafile.sh stop
/home/seafile/seafile-server-latest/seafile.sh start
/home/seafile/seafile-server-latest/seahub.sh start-fastcgi
service nginx reload

Jetzt sollte beim Aufruf von https://servername.domain.de das Seafile-Webinterface erscheinen. Bei einem selbstsignierten Zertifikat wird hier eine Zertifikatsfehlermeldung kommen – bei einem Zertifikat einer Zertifizierungsstelle nicht. Ein Aufruf von http://seafile.domain.de sollte uns sofort auf https://servername.domain.de umleiten! Einfach mal einlogen und testen……

4) Dienste automatisch starten lassen

Nachdem jetzt unser Seafile sauber und nun auch verschlüsselt funktioniert müssen noch ein paar Kleinigkeiten angepasst werden.

Um die Dienste automatisch bei einem Start des Servers zu starten (z.B. nach Reboot des Servers) mus folgendes gemacht werden:

vim /etc/init.d/seafile-server

folgendes muss hier reinkopiert werden:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          seafile-server
# Required-Start:    $local_fs $remote_fs $network mysql
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts Seafile Server
# Description:       starts Seafile Server
### END INIT INFO

# Change the value of "user" to your linux user name
user=seafile

# Change the value of "script_path" to your path of seafile installation
seafile_dir=/home/seafile
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

# Change the value of fastcgi to true if fastcgi is to be used
fastcgi=true
# Set the port of fastcgi, default is 8000. Change it if you need different.
fastcgi_port=8000

case "$1" in
        start)
                sudo -u ${user} ${script_path}/seafile.sh start >> ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh start >> ${seahub_init_log}
                fi
        ;;
        restart)
                sudo -u ${user} ${script_path}/seafile.sh restart >> ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh restart >> ${seahub_init_log}
                fi
        ;;
        stop)
                sudo -u ${user} ${script_path}/seafile.sh $1 >> ${seafile_init_log}
                sudo -u ${user} ${script_path}/seahub.sh $1 >> ${seahub_init_log}
        ;;
        *)
                echo "Usage: /etc/init.d/seafile {start|stop|restart}"
                exit 1
        ;;
esac

Danach muss die Datei ausführbar gemacht werden und als Startscript konfiguriert werden

chmod +x /etc/init.d/seafile-server
update-rc.d seafile-server defaults

Jetzt führen wir zur noch

chown -R seafile /home/seafile/

aus.

Jetzt sollte alles nach einem Neustart des Servers automatisch starten. Testen schadet aber nicht 😉

5) Mail-Konfiguration

Zum Schluss ist jetzt noch die Mail-Konfig dran:

vim /home/seafile/seahub_settings.py

Hier muss an das Ende der Datei folgendes angehängt werden

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.domain.de'
EMAIL_HOST_USER = 'admin@domain.de'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER

Danach sieht die Datei z.B. so aus:

SECRET_KEY = "46d3d6ff-e7cd-407a-aeb0-5520bfb53bea2e81"

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'seahub-db',
        'USER': 'seafile',
        'PASSWORD': 'seafile',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': 'SET storage_engine=INNODB',
        }
    }
}

FILE_SERVER_ROOT = 'https://server.domain.de/seafhttp'

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.domain.de'
EMAIL_HOST_USER = 'admin@domain.de'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER

Danach müssen die Dienste neu gestartet werden:

/home/seafile/seafile-server-latest/seahub.sh stop
/home/seafile/seafile-server-latest/seafile.sh stop
/home/seafile/seafile-server-latest/seafile.sh start
/home/seafile/seafile-server-latest/seahub.sh start-fastcgi

Jetzt sind wir fertig – Viel Spaß damit 🙂

Quelle: http://manual.seafile.com/

24 Kommentare

      1. Danke für die Anleitung. Das ist jetzt schon die dritte die ich ausprobiere. Ich scheitere aber immer an der selben Stelle.
        Habe alles auf einem neu aufgesetzten Raspian genau nach Anleitung getan.

        Starte ich die Services dann neu (bevor in dem Tut die SSL-Einrichtung vorgenommen wird) möchte nginx nicht mehr:

        bananapi@lemaker ~ $ sudo service nginx reload
        [sudo] password for bananapi:
        Reloading nginx configuration: nginx: [emerg] unknown directive “ listen“ in /etc/nginx/sites-enabled/seafile:2
        nginx: configuration file /etc/nginx/nginx.conf test failed

        Bis zu diesem Punkt läuft alles ohne Fehler. Ist es wichtig ob ich vim oder nano benutze um die config-Dateien zu schreiben? Ich habe allerdings auch schon hier beides ausprobiert.

        Bin nach dem 5. Anlauf jetzt reichlich frustriert und würde mich sehr über einen Hinweis freuen worans liegen könnte.

        1. Hi,

          was sagen den die logs unter /var/log/nginx/ ?

          stimmt die config-file unter /etc/nginx/sites-enabled ? Nicht das du versehentlich eine Zeile gelöscht hast. Gib die Datei doch mal mit cat aus ….. kannst du gerne auch hier posten…

        2. Krass ich hab alles nochmal gemacht. Mir war als Linux-Neuling nicht bewusst, dass diese config-files scheinbar total empfindlich sind. Augenscheinlich waren sie immer in Ordnung, nachdem ich alles nochmal per copy und paste direkt aus dem Seafile Handbuch gemacht habe.

          Jetzt ist nur noch ein Problem Übrig:
          Das Web-Interface wirkt „kaputt“, er lädt keine Grafiken und der Text ist nicht formatiert. Installation mit MySql wie hier beschrieben.

  1. Ja habs von mehreren Devices Probiert. Kann es sein, dass der BananaPi = Server überlastet ist? Ich bin ja kein Webdesigner, aber mein Seafile Interface sieht so aus wie Websiten die überlastet sind -.-

    Im Desktop Betrieb (schreibe gerade unter Midori) verhält er sich jetzt deutlich behebiger.

    1. Hab das Problem jetzt näher untersucht.

      Starte ich seahub normal und rufe 192.168.2.121:8000 auf so ist das Webinterface normal
      Starte ich seahub fast-cgi und rufe meine DynDns-Domain auf (via nginx) dann ist die Website nur im Textmodus ohne Formatierung oder Bilder.

      Sehr merkwürdig. Weiß noch wo ich da den Fehler gemacht haben könnte.

  2. Peinlicherweise bekomme ich den Autostart auch nicht hin. Beim Copy&Paste verliere ich immer die ersten zwei Zeilen. Diese habe ich dann Händisch eingegeben. Vielleicht liegts daran. Aber er meckert:

    bananapi@lemaker ~ $ sudo update-rc.d seafile-server defaults
    [sudo] password for bananapi:
    update-rc.d: using dependency based boot sequencing
    insserv: warning: script ‚K01seafile-server‘ missing LSB tags and overrides
    insserv: warning: script ’seafile-server‘ missing LSB tags and overrides

    Woher kommt denn diese Datei „K01seafile-server“?

    Nach dem Neustart laufen weder Seafile noch Seahub. Meine Datei sieht wie folgt aus:

    /etc/init.d/seafile-server

    #! /bin/sh

    ###BEGIN INIT INFO
    # Provides: seafile-server
    # Required-Start: $local_fs $remote_fs $network mysql
    # Required-Stop: $local_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Starts Seafile Server
    # Description: starts Seafile Server
    ### END INIT INFO

    # Change the value of „user“ to your linux user name
    user=seafile

    # Change the value of „script_path“ to your path of seafile installation
    seafile_dir=/home/seafile
    script_path=${seafile_dir}/seafile-server-latest
    seafile_init_log=${seafile_dir}/logs/seafile.init.log
    seahub_init_log=${seafile_dir}/logs/seahub.init.log

    # Change the value of fastcgi to true if fastcgi is to be used
    fastcgi=true
    # Set the port of fastcgi, default is 8000. Change it if you need different.
    fastcgi_port=8000

    case „$1“ in
    start)
    sudo -u ${user} ${script_path}/seafile.sh start >> ${seafile_init_log}
    if [ $fastcgi = true ];
    then
    sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log}
    else
    sudo -u ${user} ${script_path}/seahub.sh start >> ${seahub_init_log}
    fi
    ;;
    restart)
    sudo -u ${user} ${script_path}/seafile.sh restart >> ${seafile_init_log}
    if [ $fastcgi = true ];
    then
    sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} >> ${seahub_init_log}
    else
    sudo -u ${user} ${script_path}/seahub.sh restart >> ${seahub_init_log}
    fi
    ;;
    stop)
    sudo -u ${user} ${script_path}/seafile.sh $1 >> ${seafile_init_log}
    sudo -u ${user} ${script_path}/seahub.sh $1 >> ${seahub_init_log}
    ;;
    *)
    echo „Usage: /etc/init.d/seafile {start|stop|restart}“
    exit 1
    ;;
    esac

    1. Über welchen SSH-Client kopierst du? Ich kenne das z.B. bei Windows mit Putty und vim, dass dort auch nicht immer alle zeichen kopiert werden.. Da hilft es wenn du im vim erst ein paar Zeichen tipps und wieder löscht und dann erst einfügst.

      Komische Meldungen.. ich würde mal die File neu erstellen und im /etc/init.d Verzeichnis überprüfen ob dort vielleicht noch andere Dateien sind die vielleicht einen Copy-Paste-Fehler haben..

      1. Shame on me 😉

        Jetzt kommts. Ich mach das gerade noch vom Browser in die Konsole direkt auf dem BananaPi.

        Mit SSH hab ich in meiner kurzen Linux Laufbahn noch nicht gearbeitet und dachte ich machs mir einfacher. Möchte aber fürs nächste mal auf Bananian (Headless) mit SSH setzen, dann ist die Performance sicherlich auch noch ein wenig besser.

  3. Hey habe nach erneutem Reinstall wieder ein Problem:

    Alles funktioniert, aber ich kann in der IOs App und im Browser keine Dateien als Thumbnail sehen oder diese herunterladen. Die Seite lädt einfach nicht – keine Fehlermeldung.
    An was könnte das jetzt wieder liegen :/

      1. Ich hab den Fehler gefunden, zumindest geht es jetzt.
        Habe in der ccnet.conf: https://xxx:8001 angegeben
        in der seahub_settings.py https://xxx:8001 angegeben
        und den server-namen in der nginx config ohne http: und port angegeben. Hatte hier zuvor auch die URL Angegeben. War mir als Laia irgendwie nicht bewusst wie das schreiben muss. Naja jetzt kann ich das ganze wenigstens auswendig nach dem 5. Reinstall xD

  4. Hallo, ich hab bzw bin gerade dabei Sefile-Server 4.2.2 auf Debian 8.1 64Bit zu installieren. Leider kommt folgende Fehlermeldung wenn ich Seahub wieder Starten möchte…

    root@localhost:~# cd /home/seafile
    root@localhost:/home/seafile# ./seafile-server-latest/seahub.sh stop

    Seahub is not running
    Done.

    root@localhost:/home/seafile# ./seafile-server-latest/seafile.sh stop

    seafile server not running yet
    Done.
    root@localhost:/home/seafile# ./seafile-server-latest/seafile.sh start

    Starting seafile server, please wait …
    Seafile server started

    Done.
    root@localhost:/home/seafile# ./seafile-server-latest/seahub.sh start-fastcgi

    Starting seahub (fastcgi) at 127.0.0.1:8000 …
    Traceback (most recent call last):
    File „/home/seafile/seafile-server-4.2.2/seahub/manage.py“, line 10, in
    execute_from_command_line(sys.argv)
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/core/management/__init__.py“, line 453, in execute_from_command_line
    utility.execute()
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/core/management/__init__.py“, line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/core/management/__init__.py“, line 263, in fetch_command
    app_name = get_commands()[subcommand]
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/core/management/__init__.py“, line 109, in get_commands
    apps = settings.INSTALLED_APPS
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/conf/__init__.py“, line 53, in __getattr__
    self._setup(name)
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/conf/__init__.py“, line 48, in _setup
    self._wrapped = Settings(settings_module)
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/conf/__init__.py“, line 132, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
    File „/home/seafile/seafile-server-4.2.2/seahub/thirdpart/Django-1.5.12-py2.6.egg/django/utils/importlib.py“, line 35, in import_module
    __import__(name)
    File „/home/seafile/seafile-server-4.2.2/seahub/seahub/__init__.py“, line 2, in
    from handlers import repo_created_cb, repo_deleted_cb
    File „/home/seafile/seafile-server-4.2.2/seahub/seahub/handlers.py“, line 1, in
    import settings
    File „/home/seafile/seafile-server-4.2.2/seahub/seahub/settings.py“, line 563, in
    import seahub_settings
    File „/home/seafile/seafile-server-4.2.2/seahub/seahub/../../../seahub_settings.py“, line 17
    SyntaxError: Non-ASCII character ‚xe2‘ in file /home/seafile/seafile-server-4.2.2/seahub/seahub/../../../seahub_settings.py on line 17, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
    Error:Seahub failed to start.
    root@localhost:/home/seafile# service nginx reload
    root@localhost:/home/seafile#

Kommentar verfassen