一、更新系统软件包
yum update -y
二、安装软件管理包和可能使用的依赖
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
三、下载Pyhton3到/usr/local 目录
cd /usr/local
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
解压
tar -zxvf Python-3.6.6.tgz
进入 Python-3.6.6路径
cd Python-3.6.6
编译安装到指定路径
./configure --prefix=/usr/local/python3
安装python3
make
make install
python3建立软连接:ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
同样给pip3建立软链接:ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
四、安装virtualenv
pip3 install virtualenv
建立软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
五、下载并安装MySQL
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
MySQL数据库设置: systemctl start mysqld.service
grep "password" /var/log/mysqld.log
登录mysql:mysql -uroot -p
修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
创建数据库create database forum,并使用use forum;
创建/www/wwwroot/目录,并将项目解压至该目录
在master目录下创建虚拟环境virtualenv --python=/usr/bin/python3 master_venv
执行source ./master_venv/bin/activate
修改/master/ForumSystem下settings.py中数据库密码
回到master目录,在虚拟环境下安装pip3 install django pip3 install pgsql
pip3 install uwsgi pip3 install -r requirements.txt
安装requirements.txt出错
centos安装psycopg2时出错:Error: pg_config executable not found.解决方案
yum install postgresql-devel*
使用 pip install psycopg2-binary 安装即可
再执行pip3 install -r requirements.txt
六、配置uwsgi配置文件(master同目录下,已创建,可以修改端口)
[uwsgi]
master = true
processes = 1
threads = 2
chdir = /www/wwwroot/master
#wsgi-file= /www/wwwroot/master/
wsgi-file = /www/wwwroot/master/ForumSystem/wsgi.py
http = 0.0.0.0:8080
logto = /www/wwwroot/master/logs/error.log
chmod-socket = 660
vacuum = true
master = true
max-requests = 1000
static-map = /static=/www/wwwroot/master/static
在master目录下运行,进行数据库迁移:
python manage.py makemigrations
python manage.py migrate
在master目录下启动uwsgi uwsgi --ini uwsgi.ini 浏览器输入网址http://ip地址:8080/login 安装成功
项目采用mysql进行存储,我使用的是mysql 8.0.16。表之间不采用任何外键关联,逻辑的管理都在控制层完成。每个表的id都由Django自动创建,也同时作为主键。
字段名称 | 字段类型 | 字段说明 |
---|---|---|
id | int | 编号,自增,主键 |
uid | vchar(16) | 用户名,唯一 |
password | vchar(16) | 密码 |
create_time | Date | 创建日期 |
字段名称 | 字段类型 | 字段说明 |
---|---|---|
id | int | 编号,自增,主键 |
t_uid | vchar(16) | 帖子作者 |
t_kind | vchar(32) | 帖子类型 |
create_time | Date | 帖子发布日期 |
t_photo | vchar(128) | 帖子主页图,允许为空 |
t_content | vchar(3000) | 帖子内容 |
t_title | vchar(64) | 帖子标题 |
t_introduce | vchar(256) | 帖子介绍 |
recommend | boolean | 是否推荐到主页,默认false |
字段名称 | 字段类型 | 字段说明 |
---|---|---|
id | int | 编号,自增,主键 |
r_tid | vchar(16) | 回复的帖子 |
r_uid | vchar(16) | 发表回复的人 |
r_time | Date | 回复时间 |
r_photo | vchar(128) | 回复图片,允许为空 |
r_content | vchar(256) | 回复内容 |
字段名称 | 字段类型 | 字段说明 |
---|---|---|
id | int | 编号,自增,主键 |
k_name | vchar(16) | 分类名称 |
字段名称 | 字段类型 | 字段说明 |
---|---|---|
id | int | 编号,自增,主键 |
a_title | vchar(64) | 公告名称 |
a_content | vchar(3000) | 公告内容,允许为空 |
数据库代码在模型(models)层:参见/ForumSystem/app01/models.py