Ci sono alcuni tutorial di configurazione del server Seafile per ISPConfig, ma niente che non richieda una buona maggioranza di modifica dei file che dovrebbero davvero essere lasciati soli secondo le raccomandazioni degli sviluppatori di ISPConfig. Sebbene questa configurazione sia scritta per Ubuntu 14.04 LTS e ISPConfig 3, può essere seguita per altre distribuzioni. Questa soluzione funziona per me, ma nessuna garanzia o garanzia è espressa o implicita.
Si presume che il lettore desideri distribuire Seafile utilizzando MySQL e Apache (anche https). Si presume inoltre che tu possa utilizzare ISPConfig in modo funzionale, poiché questo non è un tutorial di ISPConfig.
1 sito Web di installazione
Apri il pannello di controllo dell'hosting ISPConfig, fai clic sulla scheda Siti e crea un nuovo sito Web. Anche se tecnicamente puoi utilizzare un sito Web esistente, crearne uno nuovo funziona meglio in quanto ci consente di mantenere tutti i file cloud separati da altri siti. Ciò è necessario anche per utilizzare il pannello ISPConfig per le modifiche alla configurazione.Nel pannello di configurazione del sito Web, fare clic sulla scheda Opzioni e inserire quanto segue nella sezione Direttive Apache:
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}]
Dovresti anche creare un utente shell per questo sito, poiché sarà utile a breve.
2 Crea database
Dal pannello Siti in ISPConfig, seleziona Utente database e Aggiungi nuovo utente. Crea un singolo utente per client che gestirà i database seafile di quel cliente.Dopo aver creato l'utente del database, fai clic su Database e Aggiungi nuovo database. Dovrai aggiungere tre database separati: ccnetdb, seafiledb, seahubdb
3 Scarica e installa il software Seafile
Ci sono alcuni pacchetti richiesti che dobbiamo installare. SSH nel tuo sito web ed esegui i seguenti comandi:apt-get install python2.7 python-setuptoolspython-simplejson python-imaging python-mysqldb python-fup
Preferisco che tutti i miei server siano in esecuzione all'interno della directory privata piuttosto che della directory web, quindi la configureremo come tale.
cd private
mkdir seafile
cd seafile
wgethttps://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_x86-64.tar.gz
o per 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 installato
mv seafile-server_* installato
cd seafile-server-*
./setup_seafile_mysql.sh
4 Corsa iniziale
È ora di avviare seafile e assicurarsi che la configurazione iniziale funzioni.
./seafile.sh inizio
./seahub.sh inizio
http://192.168.1.111:8000/
5 Configurazione di Apache
La maggior parte della nostra configurazione per Apache viene effettivamente eseguita all'interno del sito Web setup di cui sopra. Tuttavia, è necessario aggiungere una riga ad apache.conf affinché tutto funzioni senza intoppi. Sfortunatamente, non ho trovato un modo per aggiungerlo senza modificare questo singolo file.
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.comDovremo anche modificare FILE_SERVER_ROOT in /path/to/seafile-server/seahub_settings.py
FILE_SERVER_ROOT ='http://www.myseafile.com/seafhttp'
Riavvia Apache.sudo service apache2 restartRiavvia i servizi Seafile.
./seafile.sh start
./seahub.sh start-fastcgi
6 Abilita HTTPS
L'unica cosa da fare è generare una chiave SSL dalla scheda Siti di ISPConfig. A causa del modo in cui ISPConfig è installato e funziona, tutto il resto dovrebbe essere già configurato. Potrebbe essere necessario assicurarsi che Apache venga riavviato.7 Avvia automaticamente i servizi
Poiché l'obiettivo qui è mantenere tutto ciò che è contenuto con ISPConfig, piuttosto che creare un servizio di avvio, aggiungeremo seafilescript ai lavori cron degli utenti. Naturalmente, dovrai assicurarti che il client abbia la possibilità di aggiungere lavori cron completi. /var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seahub. shstart-fastcgi
e
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seafile_start
AGGIORNAMENTO (23 novembre 2014):poiché l'avvio dei server seafile e seahub richiede un po' di tempo, in alcune occasioni il secondo script veniva eseguito prima che lo script precedente fosse terminato. Quindi il server non si avvia. Ho aggiornato lo script di avvio di originalseafile per funzionare correttamente con ISPConfig. Probabilmente ho esagerato con i comandi di attesa, ma lo script funziona bene usandoli. Assicurati di aver effettuato l'accesso come utente di questifile prima di eseguire i seguenti comandi.
Crea un file di avvio:
cd ~/private/seafile
tocca startSeafile.sh
chmod +x startSeafile.sh
#!/bin/bash
# Modifica il valore di "seafile_dir" nel percorso di installazione di seafile
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
# Cambia il valore di fastcgi in true se deve essere utilizzato fastcgi
fastcgi=true
# Imposta la porta di fastcgi, il valore predefinito è 8000. Modificalo se necessario.
fastcgi_port=8000
## Il comando Sleep è necessario per prevenire errori MYSQL se
## questo script viene eseguito prima che MYSQL sia completamente operativo
sleep 60 &
attendi %1
caso "$1" in
inizio)
${script_path}/seafile.sh inizio>> ${seafile_init_log} &
attendi %1
if [ $fastcgi =true ];
allora
${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
;;
restart)
${script_path}/seafile.sh restart>> ${seafile_init_log} &
wait %1
if [ $fastcgi =true ];
Quindi
$ {script_path} /seahub.sh Restart Fastcgi $ {Fastcgi_port}>> $ {Seahub_init_log} &
wait %1
else
$ {script_path} / seahub.sh restart>> ${seahub_init_log} &
wait $1
fi
;;
stop)
${script_path}>> $file.sh $1 {seafile_init_log}
${script_path}/seahub.sh $1>> ${seahub_init_log}
;;
*)
echo "Usage:/etc/init.d/seafile{start|stop|restart}"
uscita 1
;;
esac
Ora dovrai solo aggiungere il singolo job startServer.shcron nella sezione Commands to Run di ISPConfig:
/var/www/clients/client1/web42/private/seafile/startSeafile. shstart
Ecco fatto!