栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【山大智云项目日志】项目配置和分工

【山大智云项目日志】项目配置和分工

2021SC@SDUSC

目录

概述

一、前置操作

1.安装vim

2.安装docker

3.apt换源

二、部署

1.创建docker容器

2.安装中文语言

3.安装前置组件

4.准备数据库

5.下载项目源代码

6.编译并安装项目

 7.创建配置文件

三、后台并发管理

 1.安装screen

 2.创建窗口

 3.不挂起地回到主窗口

 4.回到窗口

 5. 关闭窗口

四、seafile-server

1.启动

2.关闭

五、seahub

1.配置环境变量

2. 配置服务器

3.启动

六、seahub-frontend

1.npm编译

2.配置

 3.启动

七、seafevents

1.配置

2.启动

八、Elastic Search

1.安装Elastic Search

 2.配置

3.启动

九、seafdav

1.配置

2.启动

十、安装ClamAV

结尾




概述

本次项目名称为山大智云,它是基于Ubuntu 18.04进行安装配置,分为前端,API服务器,事件服务器和存储服务器端,旨在实现云存储功能的软件。

山大智云的核心是Seafile。Seafile 是一款企业级文件托管平台,拥有高可靠性和高性能的特点。它包含一个 Web 界面,可以用它来管理和分享文件;同时,它还提供了两种客户端,同步盘客户端和挂载盘客户端。另外,它还提供 IOS 和 Android 客户端。

在本次开发中,小组成员需要掌握C、Python、Javascript、MySQL(MariaDB等知识,了解框架 Django、React,了解Docker基本操作,了解Nginx配置与使用,了解网络相关的知识,理解端口的概念,会用ssh进行端口的转发。经过小组讨论,在本次项目中,我主要担任 Seahub+Proset   方面的开发。Seahub使用的语言为python+前端三件套,他主要是Seafile的Web应用,包括了Web前端和react。Proset主要分析seafes和seafevents,前者是建立ElasticSearch索引,后者是执行周期性计划任务的脚本。

接下来我介绍一下本次项目的配置工作

一、前置操作

安装前需要先进入管理员界面

1.安装vim
apt-get install vim

2.安装docker
  • 自动安装
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • 手动安装
    sudo apt-get update
    
    sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        gnupg-agent 
        software-properties-common
    
    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    sudo apt-key fingerprint 0EBFCD88
    
    sudo add-apt-repository 
    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ 
        $(lsb_release -cs) 
        stable"
    
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
    sudo docker run hello-world # 测试,可有可无

3.apt换源

1.备份镜像源

mv /etc/apt/sources.list /etc/apt/sources.list.bak

2.新建国内源

创建新文件

vim /etc/apt/sources.list

并在文件中输入以下内容,然后保存并关闭

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse



二、部署



1.创建docker容器
docker run -it -p 8000:8000 -p 8080:8080 -p 8082:8082 -p 3000:3000 -p 9200:9200 --name seafile-ce-env ubuntu:18.04 bash

之后会直接默认进入容器。 这里附上有个docker的相关操作:

1.退出:

Ctrl+D 或者输入 exit

2.查看所有容器:

docker ps -a

3.进入容器

docker attach [容器名]

4.启动容器

docker start [容器名]

进入容器前要先启动容器

注意:以下所有操作都需要在容器内部完成



2.安装中文语言
apt-get install language-pack-zh-hans
locale-gen zh_CN.UTF-8
echo "export LC_ALL=zh_CN.UTF-8">>/root/.bashrc
source /root/.bashrc

然后输入

locale

可以查看是否下载完成,如果得到以下结果则说明已安装中文:

LANG=
LANGUAGE=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MonETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

3.安装前置组件

1.升级apt

apt-get update && apt-get upgrade -y

2.安装依赖项

apt-get install -y ssh libevent-dev libcurl4-openssl-dev libglib2.0-dev uuid-dev intltool libsqlite3-dev libmysqlclient-dev libarchive-dev libtool libjansson-dev valac libfuse-dev python-dateutil cmake re2c flex sqlite3 python-pip python-simplejson git libssl-dev libldap2-dev libonig-dev vim vim-scripts wget cmake gcc autoconf automake mysql-client librados-dev libxml2-dev curl sudo telnet netcat unzip netbase ca-certificates apt-transport-https build-essential libxslt1-dev libffi-dev libpcre3-dev libz-dev xz-utils nginx pkg-config poppler-utils libmemcached-dev openjdk-11-jdk aria2 sudo

这一项工作比较容易出错,需要多加注意,网络的不稳定有可能导致下载失败,要有耐心。

3.安装nodejs

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
apt-get install -y nodejs

4.安装python及依赖模块

sudo apt install python3-pip
python3.6 -m pip install --upgrade pip

rm /usr/bin/python
rm /usr/bin/python3
ln -s /usr/bin/python3.6 /usr/bin/python
ln -s /usr/bin/python3.6 /usr/bin/python3

rm /usr/bin/pip
rm /usr/bin/pip3
ln -s /usr/local/bin/pip3.6 /usr/bin/pip
ln -s /usr/local/bin/pip3.6 /usr/bin/pip3

pip install python-cas djangosaml2 cffi sqlalchemy pymysql pillow pycryptodome configparser pylibmc django-pylibmc elasticsearch==5.5.0 elasticsearch-dsl==5.4.0 Django==2.2.14 future captcha django-statici18n django-post_office==3.3.0 django-webpack_loader==0.7.0 gunicorn mysqlclient django-picklefield==2.1.1 openpyxl qrcode django-formtools django-simple-captcha djangorestframework==3.11.1 python-dateutil requests pillow pyjwt pycryptodome requests_oauthlib mock nose exam splinter pytest pytest-django json5 pyyaml jinja2

4.准备数据库
apt-get install -y mariadb-server
service mysql start
mysqladmin -u root password 123456 # root密码123456
mysql

进入mysql终端后:

1.建表

create database ccnet charset utf8;
create database seafile charset utf8;
create database seahub charset utf8;

2.创建master用户

CREATE USER 'master'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'master'@'localhost';

5.下载项目源代码
cd ~/
mkdir -p ~/dev/source-code
cd ~/dev/source-code

git clone https://github.com.cnpmjs.org/SDU-NetdiskTeam/libevhtp.git
git clone https://github.com.cnpmjs.org/SDU-NetdiskTeam/libsearpc.git
git clone https://github.com.cnpmjs.org/SDU-NetdiskTeam/seafile-server.git
git clone https://github.com.cnpmjs.org/SDU-NetdiskTeam/seahub.git
git clone https://github.com.cnpmjs.org/SDU-NetdiskTeam/seahub-extra.git seahub_extra
git clone https://github.com.cnpmjs.org/SDU-NetdiskTeam/pro-set.git pro
git clone https://github.com.cnpmjs.org/SDU-NetdiskTeam/seafdav.git

cd libsearpc/
git checkout 8.0

cd ../seafile-server
git checkout develop

cd ../seahub
git checkout develop

6.编译并安装项目
cd ../libevhtp
cmake -DEVHTP_DISABLE_SSL=ON -DEVHTP_BUILD_SHARED=OFF .
make
make install
ldconfig

cd ../libsearpc
./autogen.sh
./configure
make
make install
ldconfig

cd ../seafile-server
./autogen.sh
./configure --disable-fuse
make
make install
ldconfig

 7.创建配置文件
mkdir ~/dev/conf
cd ~/dev/conf

cat > ccnet.conf  < seahub_settings.py  < seafevents.conf  < seafile.conf  < seafdav.conf  < 

三、后台并发管理

 1.安装screen
apt-get install screen

 2.创建窗口
screen -S [窗口名]

 3.不挂起地回到主窗口
Ctrl+D,然后按A

 4.回到窗口
screen -r [窗口名]

 5. 关闭窗口
screen -S [窗口名] -X quit

四、seafile-server

1.启动
service mysql start
seaf-server -c /root/dev/conf -d /root/dev/seafile-data -D all -f -l - &

2.关闭
kill `ps -aux | grep seaf-server | sed -n 1p | awk '{print $2}'`

五、seahub

1.配置环境变量
cd ~/dev/source-code/seahub/

export PYTHonPATH=/usr/local/lib/python3.6/site-packages/:/root/dev/source-code/seahub/thirdpart:$PYTHonPATH
export PYTHonPATH=/root/dev/source-code:/root/dev/source-code/pro/python:$PYTHonPATH

export CCNET_CONF_DIR=/root/dev/conf
export SEAFILE_CONF_DIR=/root/dev/seafile-data
export SEAFILE_CENTRAL_CONF_DIR=/root/dev/conf
export SEAFES_DIR=/root/dev/source-code/pro/python/seafes
export SEAHUB_DIR=/root/dev/source-code/seahub
export SEAHUB_LOG_DIR=/root/dev/logs

2. 配置服务器

1.迁移数据库

python manage.py migrate
cd ../*_extra
mysql

    然后在mysql终端里输入

use seahub;
source raw_table_sql.sql

2.创建超级用户

python manage.py createsuperuser

 输入邮箱、密码即可。

3.启动

 如果没创建seahub窗口,则创建seahub窗口:

screen -S seahub

 然后在此窗口内:

cd /root/dev/source-code/seahub
python manage.py runserver 0.0.0.0:8000

 最后回到主窗口。

 此时seahub在seahub窗口内并发运行。(此操作可在最后进行)

六、seahub-frontend

1.npm编译
cd ~/dev/source-code/seahub/frontend
npm i core-js@2.6.9 -D
npm install
npm audit fix # 这步可省略
npm run-script build
cd ..
make clean
make dist

2.配置
vim /root/dev/conf/seahub_settings.py

  然后在文件里添加如下内容:

import os
PROJECT_ROOT = '/root/dev/source-code/seahub'
WEBPACK_LOADER = {
    'DEFAULT': {
        'BUNDLE_DIR_NAME': 'frontend/',
        'STATS_FILE': os.path.join(PROJECT_ROOT,
                                'frontend/webpack-stats.dev.json'),
    }
}
DEBUG = True

 3.启动

如果没创建frontend窗口,则创建frontend窗口:

screen -S frontend

然后在此窗口内: 

cd /root/dev/source-code/seahub/frontend
npm run dev

 最后回到主窗口。

此时seahub前端在frontend窗口内并发运行。(此操作可在最后进行)

七、seafevents

1.配置
cp /root/dev/source-code/pro/python/seafevents/main.py /root/dev/source-code/pro/python/seafevents/seafile_events.py
cat > /root/dev/source-code/pro/python/seafevents/run.sh << EOD
#!/bin/bash

# Your ccnet conf dir
export CCNET_CONF_DIR=/root/dev/conf
# Your seafile conf dir
export SEAFILE_CONF_DIR=/root/dev/seafile-data

# Your extra python path.
export PYTHonPATH=/usr/local/lib/python3.6/site-packages/:/root/dev/source-code/seahub/thirdpart:/root/dev/source-code:/root/dev/source-code/pro/python:/usr/local/lib/python3.6/site-packages/:/root/dev/source-code/seahub/thirdpart:
export PYTHonPATH=/root/dev/source-code:/root/dev/source-code/pro/python:/root/dev/source-code:/root/dev/source-code/pro/python:/usr/local/lib/python3.6/site-packages/:/root/dev/source-code/seahub/thirdpart:

pkill -f "python seafile_events.py"

python seafile_events.py --loglevel=info --logfile=/root/dev/logs/events.log --reconnect  --config-file=/root/dev/conf/seafevents.conf

EOD
chmod +x /root/dev/source-code/pro/python/seafevents/run.sh

2.启动

如果没创建seafevents窗口,则创建seafevents窗口:

screen -S seafevents

然后在此窗口内:

cd /root/dev/source-code/pro/python/seafevents
./run.sh

最后回到主窗口。

此时周期事件脚本在seafevents窗口内并发运行。(此操作可在最后进行)

八、Elastic Search

1.安装Elastic Search

 创建es用户:

groupadd es
useradd es -g es
passwd es

然后输入密码。接下来从proset中复制elastic search:

mkdir /home/es
cp -r /root/dev/source-code/pro/elasticsearch /home/es/
chown -R es /home/es

 2.配置
cat > /root/dev/source-code/pro/python/seafes/run.sh < 
3.启动 

如果没创建seafes窗口,则创建seafes窗口:

screen -S seafes

然后在此窗口内: 

 1.切换至此用户:

su es

2.运行Elastic Search

cd /home/es/elasticsearch/bin
./elasticsearch

最后回到主窗口。

此时Elastic Search在es窗口内并发运行。(此操作可在最后进行)

九、seafdav 1.配置
vim /root/dev/source-code/seafdav/run.sh

  然后输入:

#!/bin/bash

export CCNET_CONF_DIR=/root/dev/conf
export SEAFILE_CONF_DIR=/root/dev/seafile-data
export SEAFILE_CENTRAL_CONF_DIR=/root/dev/conf

export PYTHonPATH=/usr/local/lib/python3.6/site-packages/:/root/dev/source-code/seahub/thirdpart:$PYTHonPATH
export PYTHonPATH=/root/dev/source-code:/root/dev/source-code/pro/python:$CCNET_CONF_DIR:$PYTHonPATH

TOP_DIR=$(python -c "import os; print(os.path.dirname(os.path.realpath('$0')))")

cd "$TOP_DIR"

python -m wsgidav.server.server_cli --host=0.0.0.0 --port=8080 --root=/ --server=gunicorn

  最后添加可执行权限

chmod +x /root/dev/source-code/seafdav/run.sh
2.启动

如果没创建seafdav窗口,则创建seafdav窗口:

screen -S seafdav

然后在此窗口内:

cd /root/dev/source-code/seafdav
./run.sh

 最后回到主窗口。

此时DAV服务在seafdav窗口内并发运行。(此操作可在最后进行)

十、安装ClamAV
groupadd clamav
useradd -g clamav clamav
sudo apt-get install clamav clamav-freshclam
freshclam # 刷新病毒库,较慢,可暂时不用



结尾

推荐在此时启动上述所有需要启动的服务。

在确保seahub、frontend、seafevents、seafes、seafdav都启动在各自窗口后,可以打开火狐浏览器,输入localhost:8000进入网站进行测试。(用户名密码为此前设置的超级用户)

至此,本次项目的开发工作基本结束。配置过程比较麻烦,需要耐心学习下载。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285690.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号