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
评论区