Seafile是一个类似于Dropbox&Box的基于开源云的文件存储系统。不同的是,Seafile可以部署在客户自己的系统上。这提供了更大的安全性和安全性因素,因为密码仅在设置系统的客户端与他/她自己的用户而不是公司云托管公司之间互换。
有几个Seafile服务器设置教程用于ISPConfig,但没有一个不需要大量的编辑文件,应该根据ISPConfig开发人员的建议应该留下来。虽然这个设置是为Ubuntu 14.04 LTS和ISPConfig 3编写的,但可以遵循其他distrobutions。该解决方案适用于我,但不保证或保证是明示或暗示的。
假设读者想要使用MySQL和Apache(也是https)部署Seafile。还假设您可以在功能上使用ISPConfig,因为这不是ISPConfig教程。
在网站配置面板中,单击选项选项卡,并在
您也应该为此网站创建一个shell用户,因为这将很快就需要。
创建数据库用户后,单击“数据库”和“
7自动启动服务
由于这里的目标是保留ISPConfig所包含的所有内容,而不是创建启动服务,我们将添加seafile脚本到用户cron作业。当然,您需要确保客户端能够添加完整的cron作业。
确保您添加两个不同的cron作业;
一个为海底,一个为seahub。
在“
和
UPDATE (2014年11月23日):由于seafile和seahub服务器需要一段时间才能启动,所以有时候第二个脚本会在上一个脚本完成之前运行。因此服务器将无法启动。我已经更新了原始的seafile启动脚本,以正确地使用ISPConfig。我可能已经在
创建启动文件:
现在,您只需要将单个
而已!
有几个Seafile服务器设置教程用于ISPConfig,但没有一个不需要大量的编辑文件,应该根据ISPConfig开发人员的建议应该留下来。虽然这个设置是为Ubuntu 14.04 LTS和ISPConfig 3编写的,但可以遵循其他distrobutions。该解决方案适用于我,但不保证或保证是明示或暗示的。
假设读者想要使用MySQL和Apache(也是https)部署Seafile。还假设您可以在功能上使用ISPConfig,因为这不是ISPConfig教程。
1安装网站
打开您的ISPConfig主机控制面板,单击“站点
”选项卡,并创建一个新的网站。虽然您可以在技术上使用现有网站,但创建新网站的工作效果会更好,因为它可以让所有云端文件与其他网站分开。使用ISPConfig面板进行配置更改也是必需的。
在网站配置面板中,单击选项选项卡,并在
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}]
您也应该为此网站创建一个shell用户,因为这将很快就需要。
2创建数据库
从ISPConfig中的“站点”
面板中,选择“
数据库用户”
并
添加新用户
。为每个客户端创建一个用户,以管理该客户端的seafile数据库。
创建数据库用户后,单击“数据库”和“
添加新数据库”
。您将需要添加三个独立的数据库:
ccnetdb
,
seafiledb
,
seahubdb
3下载并安装Seafile软件
我们需要安装一些所需的软件包。 SSH进入您的网站并执行以下命令:apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb python-flup我更喜欢让我的所有服务器都在
专用
目录中运行,而不是在
web
目录中运行,所以我们将这样设置。
cd private此时,您需要回答与系统和安装有关的提示问题。当您进入标题为“
mkdir seafile
cd seafile
wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_x86-64.tar.gz
or for 32bit
wget https://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 installed
mv seafile-server_* installed
cd seafile-server-*
./setup_seafile_mysql.sh
请选择一种初始化海床
数据库的方法”部分时,您需要选择
2
并从ISPConfig设置输入数据库信息。
4初始运行
现在是时候开始海底,并确保初始设置正常工作。./seafile.sh start启动服务后,打开您的网页浏览器,并导航到上面创建的端口8000的网站地址。
./seahub.sh start
http://192.168.1.111:8000/
5 Apache安装程序
我们大多数Apache的设置实际上是在上面的网站设置中完成的。但是,我们需要在apache.conf中添加一行,以使所有操作顺利。不幸的是,我没有找到一种方法来添加它,而无需编辑这个单个文件。sudo echo "## Seafile External Server" >> /etc/apache2/apache.conf现在修改/path/to/seafile-server/ccnet/ccnet.conf中的
sudo echo "FastCGIExternalServer /var/www/seafile.myDomainHere.com/web/seahub.fcgi -host 127.0.0.1:8000" >> /etc/apache2/apache.conf
SERVICE_URL
SERVICE_URL = http://www.myseafile.com我们还需要修改/path/to/seafile-server/seahub_settings.py中的
FILE_SERVER_ROOT
FILE_SERVER_ROOT = 'http://www.myseafile.com/seafhttp'重新启动Apache。
sudo service apache2 restart重新启动海底服务。
./seafile.sh start
./seahub.sh start-fastcgi
6启用HTTPS
唯一需要做的是从ISPConfig的“站点”选项卡内部生成SSL密钥。由于ISPConfig的安装和运行方式,所有其他应该已经被设置了。您可能需要确保Apache重新启动。 7自动启动服务
由于这里的目标是保留ISPConfig所包含的所有内容,而不是创建启动服务,我们将添加seafile脚本到用户cron作业。当然,您需要确保客户端能够添加完整的cron作业。
运行命令”
部分中插入以下内容:
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seahub.sh start-fastcgi
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seafile_start
UPDATE (2014年11月23日):由于seafile和seahub服务器需要一段时间才能启动,所以有时候第二个脚本会在上一个脚本完成之前运行。因此服务器将无法启动。我已经更新了原始的seafile启动脚本,以正确地使用ISPConfig。我可能已经在
等待
命令上过度了,但脚本使用它们很好。确保您在运行以下命令之前以海员用户身份登录。
创建启动文件:
cd ~/private/seafile将以下代码粘贴到
touch startSeafile.sh
chmod +x startSeafile.sh
startSeafile.sh
脚本中:
#!/bin/bash
# Change the value of "seafile_dir" to your path of 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
# 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
## Sleep command is necessary to prevent MYSQL errors if
## this script runs before MYSQL is fully operational
sleep 60 &
wait %1
case "$1" in
start)
${script_path}/seafile.sh start >> ${seafile_init_log} &
wait %1
if [ $fastcgi = true ];
then
${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 ];
then
${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}/seafile.sh $1 >> ${seafile_init_log}
${script_path}/seahub.sh $1 >> ${seahub_init_log}
;;
*)
echo "Usage: /etc/init.d/seafile {start|stop|restart}"
exit 1
;;
esac
现在,您只需要将单个
startServer.sh
cron作业添加到
ISPConfig
的
“运行命令”
部分:
/var/www/clients/client1/web42/private/seafile/startSeafile.sh start
而已!