山东大学校内网盘开发日志1——Seafile Cloud官方社区版安装
当今,校内云存储服务的需求正在不断扩大。例如,对于各科作业的收取,尤其是电子档作业的收取,目前大多数院校还在使用一些较老的技术,如FTP,或者是即时聊天软件的文件传输系统。我校项目实训中给出了开发校内网盘的课题,旨在解决这一问题。
根据指导老师的计划,我们将以社区版Seafile为基础,对其源代码进行解读和修改,那么今天首先带来社区版服务器的部署及体验。
服务器端部署
由于未来计划部署在我校信息中心的Linux服务器上,所以这次我将演示在Linux服务器上的部署,原先我所使用的阿里云服务器是Ubuntu16.04,部署版本为社区版7.1.5。
部署Seafile需要Python3以上的环境:
apt-get update
apt-get install python3 python3-setuptools python3-pip python3-ldap -y
pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools \
django-pylibmc django-simple-captcha
还需要Mysql数据库等,官方给出了Seafile安装脚本,其中包括了Mysql数据库的自动部署,通过wget下载脚本:
wget https://raw.githubusercontent.com/haiwen/seafile-server-installer-cn/master/seafile-server-7.1-ubuntu-amd64-http
运行脚本:
bash seafile-server-ubuntu-amd64-http 7.1.5
注意最后的7.1.5是需要安装的版本号。
安装完成后系统会把MYSQL的root用户密码储存在/root/.my.cnf
中,MySQL 的 seafile 用户密码存储在 /opt/seafile.my.cnf
中。
部署好之后的目录结构:
seafile
├── ccnet
│ ├── mykey.peer
│ ├── PeerMgr
│ └── seafile.ini
├── conf
│ └── ccnet.conf
│ └── seafile.conf
│ └── seahub_settings.py
│ └── gunicorn.conf
├── installed
│ └── seafile-server_7.0.0_x86-64.tar.gz
├── seafile-data
├── seafile-server-7.0.0 # active version
│ ├── reset-admin.sh
│ ├── runtime
│ ├── seafile
│ ├── seafile.sh
│ ├── seahub
│ ├── seahub.sh
│ ├── setup-seafile-mysql.sh
│ └── upgrade
├── seafile-server-latest # symbolic link to seafile-server-7.0.0
├── seahub-data
│ └── avatars
部署完成之后,seafile和seahub服务应当是自动运行的,如果没有,需要切换到seafile用户启动:
su seafile
./seafile.sh start
./seahub.sh start #默认运行在127.0.0.1:8000端口上
第一次启动seahub时应当会有提示创建seafile账号,而我安装时并没有出现,我认为是上文中/opt/seafile.my.cnf
账户密码,其实并不是,这个后文再提。
部署完成后我想要进入120.77,150.166:8000体验,发现竟然无法访问!
开始以为是服务器防火墙的问题,一番检查后发现并没有相关问题,我去翻阅官方说明文件发现了这么一条:
原来是直接监听中127.0.0.1地址上了,这回可以了
好了现在就碰到了上文的账户密码错误的问题,于是我去查询手册重置了Seahub的管理员账户:
su seafile
./seafile-server-latest/reset-admin.sh
至此基本的安装完成了。