walle2.0部署教程

linuxCentos7.6安装walle2.0使用教程

应用场景

多服务器git代码一致部署

walle官网

http://www.walle-web.io/

前期准备工作

1.1安全组配置

1.TCP 80(HTTP) 0.0.0.0/0
2.Any Any 0.0.0.0/0
3.TCP 5000 0.0.0.0/0
4.TCP 25(SMTP) 0.0.0.0/0
5.TCP 8888(宝塔)0.0.0.0/0
6.TCP 8080 0.0.0.0/0
7.TCP 465(SMTPS)0.0.0.0/0
8.TCP 3306(MYSQL)0.0.0.0/0
9.TCP 1-65535 0.0.0.0/0

1.2宝塔一键安装LNMP

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
注意:这是一条命令执行,因为编辑器造成的
登录宝塔
Bt-Panel: http://101.36.160.221:8888/f424eaef
username: nbrswdzt
password: 020bd54e

按照以下提示安装LNMP环境,这里注意:walle2.0不需要PHP的,是python开发的,不用可以直接卸载掉

1.2.1. LNMP安装

1.2.2. 创建站点以及数据库

拉取walle代码

cd /www/wwwroot/
rm -rf walle-web 删除原有的宝塔创建的网页目录
git clone https://github.com/meolu/walle-web.git

Nginx设置访问目录

在宝塔中设置默认文档

修改Nginx配置文件

upstream webservers {
    server 0.0.0.0:5000 weight=1; # 负载设置
}

server {
    listen       80;
    server_name  admin.walle-web.io 101.36.161.68; # 域名设置
    # access_log   /usr/local/nginx/logs/walle.log;
    index index.html index.htm; # 日志目录

    location / {
        try_files $uri $uri/ /index.html;
        add_header access-control-allow-origin *;
        root /www/wwwroot/walle-web/fe; # 前端代码已集成到walle-web,即walle-web/fe的绝对路径(请修改成自己的)
    }

    location ^~ /api/ {
        add_header access-control-allow-origin *;
        proxy_pass      http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
    }

    location ^~ /socket.io/ {
        add_header access-control-allow-origin *;
        proxy_pass      http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        # WebScoket Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

检查刚才设置好Mysql数据库

在宝塔中设置好对外允许的端口

修改本地hosts 位置(域名不用改 内网通信用的)

127.0.0.1  admin.walle-web.io

初始化walle

sh admin.sh init

报错

如提示./venv/bin/activate: No such file or directoy 或 virtualenv –no-site-packages venv 可执行virtualenv –system-site-packages venv

如提示扩展无 可pip install 对应扩展 如提示扩展已存在可尝试先pip uninstall 对应扩展 (如pip install flask)

如提示 that satisfies the requirement gitdb>=4.0.1 可能要修改 requirements/prod.txt (GitPython==2.1.11) 或者pip install GitPython

执行sh admin.sh init 会出现以上错误

解决方法:

virtualenv --system-site-packages venv

执行完上面命令继续报错

根据以上操作信息

执行 pip install GitPython

然后再次执行sh admin.sh init

继续报错出现以下问题

中途报错

错误一般是pip的扩展无 或者配置没有对

扩展问题

如提示

pip install gunicorn==19.7.1

如不行尝试下面方法

建议:直接执行方法二简单靠谱

方法一:

因为有时候pip扩展他是安装在根目录的本机python下而不是在py venv虚拟环境内 要手动搬运过去 先pip此扩展 还是不行就去本机python安装目录找扩展

可将/usr/lib/python2.7/site-packages 中的扩展复制到 /www/wwwroot/walle-web/venv/lib/python2.7/site-packages中

方法二:(推荐)

完全可用的walle python2.7扩展包

链接:https://pan.baidu.com/s/1iZ5VdHBZa84YTfdwuYBoZA 提取码:imez

可将此丢进/walle-web/venv/lib/python2.7/中 一定要解压哦!,把原有的site-packages 删除掉 然后再次执行sh admin.sh init

创建一个数据库 walle

修改数据库配置和HOST

打开 walle-web/config/settings_prod.py

# -*- coding: utf-8 -*-
"""
    walle-web
    Application configuration.
    注意: 带了 @TODO 的地方可能需要你的调整

    :copyright: © 2015-2019 walle-web.io
    :created time: 2018-11-24 07:05:35
    :author: wushuiyong@walle-web.io
"""

import os
from walle.config.settings import Config

SETTINGS = {
    "MYSQL_USER": "root",
    "MYSQL_PASSWORD": "123456",
    "MYSQL_DATABASE": "walle",
    "MYSQL_ROOT_PASSWORD": "123456",
    "MYSQL_HOST": "127.0.0.1",
    "MYSQL_PORT": 3306,
}


class ProdConfig(Config):
    """Production configuration."""
    ENV = 'prod'
    DEBUG = True

    # 服务启动 @TODO
    # HOST 修改为与 nginx server_name 一致.
    # 后续在web hooks与通知中用到此域名.
    HOST = 'admin.walle-web.io'
    PORT = 5000
    # https True, http False
    SSL = False

    # 数据库设置 @TODO
    # SQLALCHEMY_DATABASE_URI = 'mysql://user:password@localhost:3306/walle?charset=utf8'
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
        SETTINGS["MYSQL_USER"], SETTINGS["MYSQL_PASSWORD"], SETTINGS["MYSQL_HOST"], SETTINGS["MYSQL_PORT"],
        SETTINGS["MYSQL_DATABASE"])
    # 阿里云RDS强制释放空闲连接导致经常报错 mysql server has gone way
    # 适当修改该参数即可 单位为秒
    # N秒不用的连接自动释放
    # SQLALCHEMY_POOL_RECYCLE = 30

    # 本地代码检出路径(用户查询分支, 编译, 打包) #TODO
    CODE_BASE = '/tmp/walle/codebase/'

    # 日志存储路径 @TODO
    # 默认为walle-web项目下logs, 可自定义路径, 需以 / 结尾
    # LOG_PATH = '/var/logs/walle/'
    LOG_PATH = os.path.join(Config.PROJECT_ROOT, 'logs')
    LOG_PATH_ERROR = os.path.join(LOG_PATH, 'error.log')
    LOG_PATH_INFO = os.path.join(LOG_PATH, 'info.log')
    LOG_FILE_MAX_BYTES = 100 * 1024 * 1024

    # 邮箱配置 @TODO
    MAIL_SERVER = 'smtp.exmail.qq.com'
    MAIL_PORT = 465
    MAIL_USE_SSL = True
    MAIL_USE_TLS = False
    MAIL_DEFAULT_SENDER = 'service@walle-web.io'
    MAIL_USERNAME = 'service@walle-web.io'
    MAIL_PASSWORD = 'Ki9y&3U82'

    # 登录cookie 防止退出浏览器重新登录
    COOKIE_ENABLE = False

安装walle数据库

sh admin.sh migration

(宝塔可能要直接 sh admin.sh upgrade)

启动

sh admin.sh start

后续操作

重启、升级、Migration
sh admin.sh restart # 重启
sh admin.sh upgrade # 升级walle,升级完需要重启walle服务。升级前最好 git stash 暂存本地修改,升级后git stash pop弹出暂存,然后重启服务。
sh admin.sh migration # Migration

访问域名---> 也就是用这个登录
超管:super@walle-web.io \ Walle123
所有者:owner@walle-web.io \ Walle123
负责人:master@walle-web.io \ Walle123
开发者:developer@walle-web.io \ Walle123
访客:reporter@walle-web.io \ Walle123

配置问题

配置问题请与我上面一致 可看错误日志(walle-web/logs/runtime.log)

作者:运维老许

出处:https://www.strives.cn/

联系方式:strive120620@163.com

微信公众号:Linux必修之路

声明1:本站部分资源收集自互联网,仅供个人学习交流,如不慎侵犯了您的权益,请联系我,我将尽快处理!

声明2:本文版权归作者,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利!

最后修改:2021 年 06 月 08 日 09 : 48 AM
请献出你的爱心,你的小小心意,是对博主最大的认可与支持!