如何使用ISPConfig和Seafile,而不需要手动修改文件

Seafile是一个类似于Dropbox&Box的基于开源云的文件存储系统。不同的是,Seafile可以部署在客户自己的系统上。这提供了更大的安全性和安全性因素,因为密码仅在设置系统的客户端与他/她自己的用户而不是公司云托管公司之间互换。

有几个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用户,因为这将很快就需要。

ssh用户

2创建数据库

从ISPConfig中的“ 站点”面板中,选择“ 数据库用户” 添加新用户 。为每个客户端创建一个用户,以管理该客户端的seafile数据库。

db用户

创建数据库用户后,单击“数据库”和“ 添加新数据库” 。您将需要添加三个独立的数据库: ccnetdbseafiledbseahubdb

db1
db 2
db 3

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
./seahub.sh start
启动服务后,打开您的网页浏览器,并导航到上面创建的端口8000的网站地址。

http://192.168.1.111:8000/

5 Apache安装程序

我们大多数Apache的设置实际上是在上面的网站设置中完成的。但是,我们需要在apache.conf中添加一行,以使所有操作顺利。不幸的是,我没有找到一种方法来添加它,而无需编辑这个单个文件。
sudo echo "## Seafile External Server" >> /etc/apache2/apache.conf
sudo echo "FastCGIExternalServer /var/www/seafile.myDomainHere.com/web/seahub.fcgi -host 127.0.0.1:8000" >> /etc/apache2/apache.conf
现在修改/path/to/seafile-server/ccnet/ccnet.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重新启动。
ssl

7自动启动服务

由于这里的目标是保留ISPConfig所包含的所有内容,而不是创建启动服务,我们将添加seafile脚本到用户cron作业。当然,您需要确保客户端能够添加完整的cron作业。 确保您添加两个不同的cron作业; 一个为海底,一个为seahub。 在“ 运行命令”部分中插入以下内容:

/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


cron工作

而已!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏