Es gibt ein paar Tutorials zur Einrichtung von Seafile-Servern ISPConfig, aber keines, das nicht eine gute Mehrheit der Bearbeitung der Dateien erforderte, die gemäß den ISPConfig-Entwicklerempfehlungen wirklich in Ruhe gelassen werden sollten. Während dieses Setup für Ubuntu 14.04 LTS und ISPConfig 3 geschrieben wurde, kann es für andere Distributionen befolgt werden. Diese Lösung funktioniert für mich, aber es wird keine ausdrückliche oder stillschweigende Garantie oder Gewährleistung gegeben.
Es wird davon ausgegangen, dass der Leser Seafile mit MySQL und Apache (auch https) bereitstellen möchte. Es wird auch davon ausgegangen, dass Sie ISPConfig funktional verwenden können, da dies kein ISPConfig-Tutorial ist.
1 Setup-Website
Öffnen Sie Ihr ISPConfig-Hosting-Steuerungsfeld, klicken Sie auf die Registerkarte "Sites" und erstellen Sie eine neue Website. Während Sie technisch gesehen eine vorhandene Website verwenden können, funktioniert das Erstellen einer neuen besser, da wir alle Cloud-Dateien von anderen Websites getrennt halten können. Dies ist auch erforderlich, um das ISPConfig-Bedienfeld für Konfigurationsänderungen zu verwenden.Klicken Sie im Website-Konfigurationsfeld auf die Registerkarte „Optionen“ und fügen Sie Folgendes in den Abschnitt „Apache-Direktiven“ ein:
Alias /media /var/www/seafile.myseafile.com/private/seafile/seafile-server-latest/seahub/media
RewriteEngine On
<Location /media>
Require all granted
</Location>
# seafile httpserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub
#
RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Sie sollten auch einen Shell-Benutzer für diese Site erstellen, da dies in Kürze erforderlich sein wird.
2 Datenbanken erstellen
Wählen Sie im Bereich „Sites“ in ISPConfig „Datenbankbenutzer“ und „Neuen Benutzer hinzufügen“. Erstellen Sie einen einzelnen Benutzer pro Client, der die Seafile-Datenbanken dieses Clients verwaltet.Nachdem der Datenbankbenutzer erstellt wurde, klicken Sie auf Datenbanken und Neue Datenbank hinzufügen. Sie müssen drei separate Datenbanken hinzufügen: ccnetdb, seafiledb, seahubdb
3 Seafile-Software herunterladen und installieren
Es gibt einige erforderliche Pakete, die wir installieren müssen. Stellen Sie eine SSH-Verbindung zu Ihrer Website her und führen Sie die folgenden Befehle aus:apt-get install python2.7 python-setuptoolspython-simplejson python-imaging python-mysqldb python-flup
Ich ziehe es vor, dass alle meine Server im privaten Verzeichnis statt im Webverzeichnis laufen, also richten wir es so ein.
cd private
mkdir seafile
cd seafile
wgethttps://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_x86-64.tar.gz
oder für 32-Bit
wgethttps://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_i386.tar.gz
tar zxvf seafile-server_3.1.6_x86- 64.tar.gz
mkdir installiert
mv seafile-server_* installiert
cd seafile-server-*
./setup_seafile_mysql.sh
4 Erster Lauf
Es ist an der Zeit, Seafile zu starten und sicherzustellen, dass die Ersteinrichtung funktioniert.
./seafile.sh start
./seahub.sh start
http://192.168.1.111:8000/
5 Apache-Setup
Der größte Teil unseres Setups für Apache wird tatsächlich innerhalb des Website-Setups oben durchgeführt. Allerdings müssen wir der apache.conf eine Zeile hinzufügen, damit alles reibungslos funktioniert. Leider habe ich keine Möglichkeit gefunden, dies hinzuzufügen, ohne diese einzelne Datei zu bearbeiten.
sudo echo "## Seafile External Server">>/etc/apache2/apache.conf
sudo echo "FastCGIExternalServer/var/www/seafile.myDomainHere.com/web/seahub.fcgi -host127.0.0.1:8000“>> /etc/apache2/apache.conf
SERVICE_URL = http://www.myseafile.comWir müssen auch FILE_SERVER_ROOT in /path/to/seafile-server/seahub_settings.py
ändern
FILE_SERVER_ROOT ='http://www.myseafile.com/seafhttp'
Starten Sie Apache neu.sudo service apache2 restartStarten Sie die Seafile-Dienste neu.
./seafile.sh start
./seahub.sh start-fastcgi
6 HTTPS aktivieren
Das Einzige, was getan werden muss, ist das Generieren eines SSL-Schlüssels innerhalb der Sites-Registerkarte von ISPConfig. Aufgrund der Art und Weise, wie ISPConfig installiert ist und funktioniert, sollte alles andere bereits eingerichtet sein. Möglicherweise müssen Sie jedoch sicherstellen, dass Apache neu gestartet wird.7 Dienste automatisch starten
Da das Ziel hier darin besteht, alles in ISPConfig enthalten zu halten, anstatt einen Startdienst zu erstellen, werden wir das seafilescript zu den Cron-Jobs der Benutzer hinzufügen. Natürlich müssen Sie sicherstellen, dass der Client vollständige Cron-Jobs hinzufügen kann. /var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seahub. shstart-fastcgi
und
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seafile_start
UPDATE (23. November 2014):Da es eine Weile dauert, bis die Seafile- und Seahub-Server starten, gab es Fälle, in denen das zweite Skript ausgeführt wurde, bevor das vorherige Skript fertig war. Somit würde der Server nicht starten. Ich habe das ursprüngliche Seafile-Startskript aktualisiert, damit es ordnungsgemäß mit ISPConfig funktioniert. Ich habe es wahrscheinlich mit den Wait-Befehlen übertrieben, aber das Skript funktioniert gut mit ihnen. Stellen Sie sicher, dass Sie als dieser Dateibenutzer angemeldet sind, bevor Sie die folgenden Befehle ausführen.
Erstellen Sie eine Startdatei:
cd ~/private/seafile
startSeafile.sh berühren
chmod +x startSeafile.sh
#!/bin/bash
# Ändern Sie den Wert von "seafile_dir" in Ihren Pfad der Seafile-Installation
seafile_dir=/var/www/clients/client1/web42/private/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
# Ändern Sie den Wert von fastcgi auf true, wenn fastcgi verwendet werden soll
fastcgi=true
# Stellen Sie den Port von fastcgi ein, Standard ist 8000. Ändern Sie ihn, wenn Sie einen anderen benötigen.
fastcgi_port=8000
## Der Sleep-Befehl ist notwendig, um MYSQL-Fehler zu vermeiden, wenn
## dieses Skript ausgeführt wird, bevor MYSQL vollständig betriebsbereit ist
sleep 60 &
warte %1
Fall "$1" in
start)
${script_path}/seafile.sh starte>> ${seafile_init_log} &
warte %1
if [ $fastcgi =true ];
dann
${script_path}/seahub.sh start-fastcgi ${fastcgi_port}>>${seahub_init_ log} &
wait %1
else
$ {script_path} /Seahub.sh start>> $ {seahub_init_log} &
wait %1
fi
;;
Neustart)
${script_path}/seafile.sh Neustart>> ${seafile_init_log} &
warte auf %1
if [ $fastcgi =true ];
Dann
$ {script_path} /seahub.sh restart-fastcgi $ {fastcgi_port}>> $ {seahub_init_log} &
Wait %1
else
{script_path} / seahub.sh neu starten>> ${seahub_init_log} &
$1 warten
fi
;;
;;
stop)
${script_path}/seafile {seafile_init_log}
${script_path}/seahub.sh $1>> ${seahub_init_log}
;;
*)
echo "Verwendung:/etc/init.d/seafile{start|stop|restart}"
exit 1
;;
esac
Jetzt müssen Sie nur noch den einzelnen Job "startServer.shcron" in den Abschnitt "Commands to Run" von ISPConfig einfügen:
/var/www/clients/client1/web42/private/seafile/startSeafile. shstart
Das war's!