# 部署 Seafile 服务器(使用 MySQL)
此文档用来说明通过预编译好的安装包,来安装并运行基于 MySQL 的 Seafile服务器.
### 下载
到[下载页面](http://www.seafile.com/download)下载最新的服务器安装包.
### 部署和目录设计
假设你公司的名称为 **haiwen**,你也已经下载 seafile-server_1.4.0_* 到你的**home** 目录下。 我们建议这样的目录结构:
~~~
mkdir haiwen
mv seafile-server_* haiwen
cd haiwen
#将 seafile-server_* 移动到 haiwen 目录下后
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed
~~~
现在,你的目录看起来应该像这样:
~~~
#tree haiwen -L 2
haiwen
├── installed
│ └── seafile-server_1.8.2_x86-64.tar.gz
└── seafile-server-1.8.2
├── reset-admin.sh
├── runtime
├── seafile
├── seafile.sh
├── seahub
├── seahub.sh
├── setup-seafile.sh
└── upgrade
~~~
**这样设计目录的好处在于**
- 和 seafile 相关的配置文件都可以放在 **haiwen** 目录下,便于集中管理.
- 后续升级时,你只需要解压最新的安装包到 **haiwen** 目录下.
*这样你可以重用 **haiwen** 目录下已经存在的配置文件,而不用重新配置*.
### 准备 MySQL 数据库
Seafile 服务器有三个组件需要拥有自己的数据库:
- ccnet server
- seafile server
- seahub
Seafile 服务器组件更多信息请看[[Seafile服务器组件概览]].
有两种方法可以初始化数据库:
1. 通过`setup-seafile-mysql.sh`脚本创建数据库.
1. 自己或其他人(比如数据库管理员)创建
我们建议采用第一种方法. 脚本会要求你提供 MySQL数据库的的根密码,之后创建:
- ccnet/seafile/seahub 数据库
- 一个可以连接到这些数据库的用户
然而,有时你不得不使用第二种方法.如果你没有根密码,你需要通过拥有这种权限的人(比如数据库管理员)来帮助你创建三个数据库,和一个能连接这三个数据库的用户.例如,为 ccnet/seafile/seahub 分别创建如下三个数据库: `ccnet-db` /`seafile-db` / `seahub-db`, 和一个可以连接这三个数据库的 MySQL用户`seafile`:
~~~
create database `ccnet-db` character set = 'utf8';
create database `seafile-db` character set = 'utf8';
create database `seahub-db` character set = 'utf8';
create user 'seafile'@'localhost' identified by 'seafile';
GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`;
GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`;
GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`;
~~~
### 安装 Seafile 服务器
### 安装前的准备工作
安装 Seafile 服务器之前,请确认已安装以下软件
- python 2.7
- python-setuptools
- python-imaging
- python-mysqldb
~~~
#在Debian/Ubuntu系统下
apt-get update
apt-get install python2.7 python-setuptools python-imaging python-mysqldb
~~~
### 安装
~~~
cd seafile-server-*
./setup-seafile-mysql.sh #运行安装脚本并回答预设问题