侧边栏壁纸
博主头像
乌拉队长博主等级

你只管努力,其余的交给命运

  • 累计撰写 122 篇文章
  • 累计创建 34 个标签
  • 累计收到 31 条评论

目 录CONTENT

文章目录

wecron微定时安装部署

乌拉队长
2021-08-11 / 0 评论 / 0 点赞 / 903 阅读 / 3,420 字

wecron微定时安装部署

安装包下载:https://mlzhilu.lanzouo.com/b01clwzwj 密码:gmwd

1.安装python2.7和pip

# ubuntu
sudo apt update
sudo apt upgrade
sudo apt install python2
# ubuntu安装pip
# 下载get-pip.py文件
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2 get-pip.py

2.安装依赖

sudo apt install python-devel build-essential libssl-dev libffi-dev python-dev 

# 解决uwsgi不能解析route报错问题(不是必需的,看后面自己报不报错再决定安不安装)
sudo apt install libpcre3-dev

3.安装nginx

sudo apt install nginx
# nginx配置文件位置:/etc/nginx/conf.d
# 重新加载配置文件:sudo nginx -s reload
# 检查配置:sudo nginx -t

4.安装postgresql及修改密码

# 安装postgresql
sudo apt install postgresql postgresql-contrib

修改linux系统postgres用户的密码

PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:

# 删除用户postgres的密码
sudo passwd -d postgres
# 设置用户postgres的密码
sudo -u postgres passwd
# 根据系统提示输入新的密码

解决UWSGI启动过程中postgresql的ssl报错

解决方法---关闭ssl

# postgresql.conf配置路径位置
# 终端执行 psql postgres,进入psql执行如下查询:
select name,setting from pg_settings where category='File Locations';

###  输出如下信息  #############################    
       name        |                 setting                 
-------------------+-----------------------------------------
 config_file       | /etc/postgresql/12/main/postgresql.conf
 data_directory    | /var/lib/postgresql/12/main
 external_pid_file | /var/run/postgresql/12-main.pid
 hba_file          | /etc/postgresql/12/main/pg_hba.conf
 ident_file        | /etc/postgresql/12/main/pg_ident.conf
(5 rows)

config_file | /etc/postgresql/12/main/postgresql.conf 看出配置文件位置

使用vi编辑该配置文件sudo vi /etc/postgresql/12/main/postgresql.conf(此处需要root权限),使用#号将下面三行注释:

# ssl = on
# ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
# ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'

上面的操作需要重启postgresql才能生效:

# 重启postgresql
systemctl restart postgresql

【postgresql】role "xxxx" does not exist 解决办法

解决办法:
手动创建xxx role,我这里是使用用户名为postgres来启动postgresql服务的

su postgres
# 创建xxxx用户
postgres=#create user 你的role with password 'password';    
CREATE ROLE

# 将数据库权限赋予xxxx用户
postgres=# GRANT ALL PRIVILEGES ON DATABASE mydatabase to 你的role;
GRANT

# 将用户修改为超级用户(看实际需求)
postgres=# ALTER ROLE 你的role WITH SUPERUSER;

postgres=# \q

也可以直接将root创建为超级用户,login是指允许登录

CREATE ROLE root superuser PASSWORD 'password' login;

当前用户切换成postgres

sudo -s -u postgres

5.安装python模块

pip install -r requirement.txt
# 如果不行就使用
python2 -m pip install -r requirement.txt

解决uwsgi [strict-mode] unknown config directive: route

原文地址:https://www.it1352.com/2048337.html

我必须安装具有pcre支持的uWSGI。它解决了路由问题。

要做到这一点,我必须安装pcre lib(对于Ubuntu,该软件包名为libpcre3),然后重新安装uWSGI。由于PCRE已经存在于您的系统中,因此将在pcre支持下自动编译uWSGI。

还需要在Ubuntu上安装


libpcre3-dev软件包

之后,您可能需要运行 pip install -I --no-cache-dir uwsgi 重新安装它,否则您可能只会得到相同的缓存轮。
日志中的错误是 !!!没有内部路由支持,使用pcre支持进行重建!!!

解决:

sudo apt install libpcre3-dev
pip install -I --no-cache-dir uwsgi

至此,准备环境完成,开始部署

1. 初始化数据库

# 创建数据库
psql -c 'CREATE DATABASE "wecron" WITH OWNER "postgres" TEMPLATE template0 ENCODING="UTF8" CONNECTION LIMIT=-1;'
psql -c 'GRANT ALL PRIVILEGES ON DATABASE "wecron" to "postgres";'

# 建表
python WeCron/manage.py migrate

2.启动本地Server

python WeCron/manage.py runserver

如果这条命令执行成功,那么执行uwsgi测试:

在Makefile所在目录下执行:

make run-uwsgi-test

如果执行测试Django报错:column xxx not exist

则执行:

python manage.py makemigrations

再执行测试,应该可以通过了。

如果uwsgi测试可以通过,则执行生产环境测试:

make run-in-prod

如果生产环境也可以通过,那么就可以开始正式部署上线了。

3.线上部署

主要工作

  • 将项目中所有的wecron.betacat.io替换成你的域名
  • 将wecron/WeCron/wecron/settings.py中的ALLOWED_HOSTS中的.betacat.io替换为你的域名的后面两个
  • 将wecron/WeCron/wecron/settings.py中的WX_APPID、WX_APPSECRET、WX_SIGN_TOKEN改为你自己的微信APPID、APPSECRET和对接的时候设置的Token
  • 将wecron/deploy/conf下的nginx.conf和nginx.conf.j2复制一份到/etc/nginx/conf.d目录下,并将这两个文件中的所有wecron.betacat.io替换成你的域名(域名SSL证书需要自己上传到对应目录中)

启动项目

  • 重新加载nginx配置:sudo nginx -s reload
  • 启动项目:make run-in-prod
  • 关注你自己的公众号,进行测试

其他命令:

# 收集static静态文件
python2 manage.py collectstatic
0

评论区