在wsl上安装frappe及相关应用的具体步骤

# 在win10/11上通过store安装ubuntu-20.04

# 在powershell中设置 wsl1,注意不能是 wsl2

```

wsl --set-version Ubuntu 1

```

# 换安装源为aliyun

```

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

sudo vim /etc/apt/sources.list

```

# 安装相关包

```

sudo apt update

sudo apt upgrade

sudo apt install -y curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

sudo apt install -y git python3-dev python3-setuptools python3-pip virtualenv software-properties-common

sudo apt install -y xvfb libfontconfig wkhtmltopdf

```

# 安装mariadb + redis

```

------if ubuntu < 20.04

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.ubuntu-tw.org/mirror/mariadb/repo/10.3/ubuntu bionic main'

------if ubuntu >= 20.04

sudo apt update

sudo apt upgrade

sudo apt install -y mariadb-server-10.3

sudo apt install -y libmysqlclient-dev

sudo apt install -y redis-server

```

# 安装 pyenv

```

sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libedit-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

git clone https://github.com/yyuu/pyenv-virtualenv.git $HOME/.pyenv/plugins/pyenv-virtualenv

```

### 修改.bashrc

```

vim $HOME/.bashrc

-----------

## pyenv configs

export PYENV_ROOT="$HOME/.pyenv"

export PATH="$PYENV_ROOT/bin:$PATH"

export PATH="$PYENV_ROOT/shims:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then

  eval "$(pyenv init -)"

fi

-----------

source $HOME/.bashrc

```

# 修改mariadb相关配置文件

```

sudo vim /etc/mysql/my.cnf

-------------

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

[mysql]

default-character-set = utf8mb4

-------------

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

-------------

collation-server      = utf8mb4_unicode_ci

-------------

```

# 配置mariadb, 设置 root密码

```

sudo /etc/init.d/mysql start

sudo mysql_secure_installation

sudo /etc/init.d/mysql restart

sudo /etc/init.d/mysql status

sudo service mysql start --skip-grant-tables --skip-networking

sudo mysql -u root

FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED BY '1123';

sudo usermod -aG sudo sz

```

- 注意在`mysql_secure_installation`步骤中设置的root密码可能不管用,需要FLUSH后重设

- 需要'重启'机器

# 安装node14 + yarn

```

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

sudo apt-get install -y nodejs

sudo apt-get install -y gcc g++ make

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt update && sudo apt install yarn

```

# 换pip源

```

mkdir ~/.pip

vim ~/.pip/pip.conf

---------------

[global]

index-url = https://pypi.tuna.tsinghua.edu.cn/simple

[install]

trusted-host = https://pypi.tuna.tsinghua.edu.cn

---------------

```

# 建立frappe env

```

pyenv install 3.8.12

pyenv virtualenv 3.8.12 frappe

pyenv activate frappe

pip install -U pip setuptools

pip install frappe-bench

bench init frappe-bench

bench init --frappe-branch version-13 frappe-bench --frappe-path=https://gitee.com/qinyanwan/frappe

bench init erp13 --frappe-path=https://gitee.com/qinyanwan/frappe

```

# 启动前准备(打开 redis, mariadb)

```

sudo service redis-server start

sudo service mysql start

```

# 安装frappe 相关应用

```

bench get-app https://gitee.com/qinyanwan/erpnext.git --branch version-14-beta

bench get-app erpnext --branch version-13

bench get-app https://gitee.com/phipsoft/erpnext.git --branch version-13

bench get-app https://gitee.com/yuzelin/erpnext_chinese.git

bench get-app https://e.coding.net/kirinsoar/app/erpnext_chinese_plus.git

bench get-app https://gitee.com/yuzelin/erpnext_oob.git

bench get-app https://gitee.com/yuzelin/zelin_permission.git

bench get-app https://github.com/yrestom/POS-Awesome.git

bench get-app https://e.coding.net/kirinsoar/app/nhj_app.git

bench new-site {site}

bench --site {site} install-app erpnext

bench --site {site} install-app erpnext_chinese_plus

bench --site {site} install-app erpnext_oob

bench --site {site} install-app zelin_permission

bench --site {site} install-app posawesome

bench --site {site} install-app nhj_app

bench --site {site} list-apps

```

# get指定版本的app

```

git fetch --all --tags

git log --oneline --graph

git checkout tags/v13.19.0 -b v13.19.0-branch

git branch

git switch {branch}

```

# 修改app后重新`build` app,并且`migrate` site

```

bench set-config -g developer_mode 1

bench build --app {app}

bench --site {site} migrate

```

# 启动更新

```

bench set-config -g developer_mode 1

bench clear-cache

bench setup requirements --dev

bench start

bench update --reset

bench set-config -g set-maintenance-mode off

bench --site {site} set-maintenance-mode off

bench set-config maintenance_mode 0

```

# 同一 bench init 多个 sites [multitenancy](https://frappeframework.com/docs/v13/user/en/bench/guides/setup-multitenancy)

```

sudo apt install nginx

bench config dns_multitenant off

bench new-site site1

bench use site1

bench start

bench new-site site2

bench set-nginx-port site2 8011

bench setup nginx

sudo service nginx reload

bench --site site2 serve --port 8011

```

# 多个 bench init [multi bench](https://github.com/frappe/bench/wiki/Multi-Bench-Setup)

- When you create a new bench, it will automatically use different ports from the existing bench. For example, if you are accessing your site from localhost:8000 on your first bench, then the second bench's port will be set as 8001.

- The biggest advantage to a multibench setup is that you can have different kinds of setups, e.g Development and Production on the same server. A multi-production, multi-development setup is also fine.

- For production setup you will have to run `bench setup nginx` every time after creating a new site.

```

Notes:

1. If a new site is automatically created in primary bench, then remove file name frappe_bench_dir in /etc/

2. If the server port doesn't change from 8000, then change it manually in nginx.conf and supervisor.conf

3. For redis, change redis port in /sites/common_site_config.json and run the following commands:

    bench setup socketio

    bench setup redis

    service nginx reload

    supervisorctl reload

4. Multi-Bench works easier when setup under one user

```

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容