20140113 更新:
[1]. 忽略域中被禁止的用户。
安装环境
CentOS 5.10 x64
Apache 2.2.4 自编译
seafile 2.0.4 with MySQL
Windows AD
seafile安装目录 /home/seafile/
相关账号
mysql两套账号密码:
账号 | 密码 | 作用 |
---|---|---|
root | root | super权限,用于数据库安装。 |
seafile | seafile | 仅对seafile的3个库有DML权限。 |
Windows AD账号:
账号 | 密码 | 备注 |
---|---|---|
cloud | cloud | 具体设定见 # 域设置 |
域设置
确保域可用,为了安全性,在域控上增加一个账号,用户域账户登录查询用。
假定域账户设定:
属性 | 值 |
---|---|
域 | LIUDONGKAI.COM |
账号 | cloud |
用户组 | Users |
并将cloud账号加入Domain Admins用户组里,仅此用户组即可。
seafile 2.0.4 + MySQL
参考资料:https://github.com/haiwen/seafile/wiki/Deploy-Seafile-with-MySQL
准备
- 确保mysql已安装并可用。
- 下载程序seafile server 2.0.4 x64至安装目录/home/seafile/下,并解压。http://seafile.googlecode.com/files/seafile-server_2.0.4_x86-64.tar.gz
步骤
安装seafile-server
1 | $ cd /home/seafile/ |
完成以上步骤,依赖MySQL自建账号模式的seafile就可以通过访问设定的IP+端口的形式正常使用了。
添加域的部分查看 LDAP设置(整合Windows AD账号) 。
需要使用域名访问,请查看 Apache部分
其他设置
部分配置的变量可能在配置文件中不存在,此时会取默认配置,一旦填写后,在加载时会覆盖默认配置!
MySQL配置
如果需要调整MySQL配置需要修改2个config文件,分别是ccnet/ccnet.conf
,seahub_settings.py
,根据实际情况调整:
注意:
官方提示,**mysql连接请不要使用localhost
,应使用127.0.0.1
**,在测试的过程中,也的确有这个问题。
ccnet/ccnet.conf:
1 | [Database] |
seahub_settings.py
1 | DATABASES = { |
邮件服务设置
修改seahub_settings.py
,如果没有,则在末尾添加即可:
1 | EMAIL_USE_TLS = False |
个性化设置
如需要调整站点名称,logo URL等信息,修改seahub_settings.py
:
Seafile的web部分是采用Django这个开源框架搭的,部分设置变量可以参考Django,这家伙的资料比较好找。
1 | # 站点名称,url等配置 |
LDAP设置(整合Windows AD账号)
参考资料:https://github.com/haiwen/seafile/wiki/Configure-Seafile-to-use-LDAP
LDAP部分的设定非常的简单,只要对ccnet/ccnet.conf
做相应修改即可:
1 | [LDAP] |
1 | FILTER = &(!(UserAccountControl:1.2.840.113556.1.4.803:=2)) |
参考资料:
http://msdn.microsoft.com/en-us/library/aa746475(VS.85).aspx
https://support.microsoft.com/kb/269181/zh-cn
Apache部分
参考资料:https://github.com/haiwen/seafile/wiki/Deploy-Seafile-with-apache
首先得确保apache已经安装并可用。
其次得确保apache proxy模块,和fastcgi模块 已安装并可用。
安装FastCGI模块(mod_fastcgi)
- 安装编译相关的依赖包
1
# yum install httpd-devel apr apr-devel libtool
- 下载mod_fastcgi源代码
1
# wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz
- 解压并进行编译安装 修改top_dir目录到你真实的apache安装目录后,进行编译安装
1
2
3
4# tar zxvf mod_fastcgi-2.4.6.tar.gz
# cd mod_fastcgi-2.4.6
# cp Makefile.AP2 Makefile
# vim Makefile1
2# make
# make install - 加载模块 找到LoadModule部分,添加一行加载语句
1
# vim /etc/httpd/conf/httpd.conf
1
2
3...
LoadModule fastcgi_module modules/mod_fastcgi.so
... - 重启apache 或
1
# /usr/local/apache/bin/apachectl restart
1
# /etc/init.d/httpd restart
- 安装编译相关的依赖包
安装proxy模块(mod_proxy)
- 检查现有apache的版本
1
2
3# /usr/local/apache/bin/httpd -v
Server version: Apache/2.2.4 (Unix)
Server built: Jul 27 2009 16:04:11 - 下载对应的源码包并安装
1
2
3
4
5
6
7
8
9# cd /tmp/
# wget http://archive.apache.org/dist/httpd/httpd-2.2.4.tar.gz
# tar zxvf httpd-2.2.4.tar.gz
# cd httpd-2.2.4
# ./configure --enable-mods-shared="proxy proxy_http proxy_connect"
# cd modules/proxy/
# /usr/local/apache/bin/apxs -i -a -o mod_proxy.so -c mod_proxy.c proxy_util.c
# /usr/local/apache/bin/apxs -i -a -o mod_proxy_http.so -c mod_proxy_http.c proxy_util.c
# /usr/local/apache/bin/apxs -i -a -o mod_proxy_connect.so -c mod_proxy_connect.c proxy_util.c - 重启apache 或
1
# /usr/local/apache/bin/apachectl restart
1
# /etc/init.d/httpd restart
- 检查现有apache的版本
修改Apache的vhost配置文件,并重启Apache
我的路径是/usr/local/apache/conf/extra/httpd-vhosts.conf
,请找你对应的配置文件
在配置末尾添加上以下配置,并重启Apache:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33<VirtualHost *:80>
ServerName cloud.liudongkai.com
DocumentRoot /var/www
Alias /media /home/seafile/seafile-server/seahub/media
RewriteEngine On
<Directory /var/www>
Order allow,deny
Allow from all
</Directory>
<Directory /home/seafile/seafile-server>
Order allow,deny
Allow from all
</Directory>
#
# 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}]
</VirtualHost>
FastCGIExternalServer /var/www/seahub.fcgi -host 127.0.0.1:8000注意:
seahub.fcgi
只是一个占位符,在你的系统里并不需要存在真实的文件。- Directory的Order和Allow配置也尽量添上,这样不会有错。
如果在你的Apache根配置文件/usr/local/apache/conf/httpd.conf
里发现下面的设置,
目录禁止访问的全局配置,那么不加上这个目录权限配置会报403错误,web禁止访问。1
2
3
4
5
6<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
修改 ccnet.conf 和 seahub_setting.py
- 修改
/home/seafile/ccnet/ccnet.conf
里的SERVICE_URL
变量值
SERVICE_URL = http://cloud.liudongkai.com
- 修改
/home/seafile/seahub_settings.py
里的HTTP_SERVER_ROOT
变量值
HTTP_SERVER_ROOT = 'http://cloud.liudongkai.com/seafhttp'
- 修改
重启seafile和seahub
1
2/home/seafile/seafile-server/seafile.sh restart
/home/seafile/seafile-server/seahub.sh restart-fastcgi注意:
由于启用了apache代理,seahub必须以fastcgi的模式来启动,所以./seahub.sh start-fastcgi