服务器"/>
linux+python3.6.8+uwsgi+postgresql+django部署web服务器
linux+python3.6.8+uwsgi+postgresql+django部署web服务器
- 1.查看系统信息
- 2.配置postgresql数据库
- 2-1.安装postgresql数据库
- 2-2.设置密码
- 2-3.修改postgresql数据库配置文件
- 3.Python虚拟环境
- 激活虚拟环境
- 安装python插件
- 创建Django项目
- 配置Django
1.查看系统信息
我这是使用华为云服务器
cat /etc/redhat-release
# CentOS Linux release 7.9.2009 (Core)
cat /proc/version
# Linux version 3.10.0-1160.92.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos)
# (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Jun 20 11:48:01 UTC 2023
2.配置postgresql数据库
2-1.安装postgresql数据库
# 安装yum源
yum install -y .noarch.rpm
# 安装postgresql 12
yum install -y postgresql12-server
# 数据库初始化
/usr/pgsql-12/bin/postgresql-12-setup initdb
# 设置开机自启动数据库
systemctl enable postgresql-12
# 启动数据库
systemctl start postgresql-12
# 重启数据库
systemctl restart postgresql-12
# 开闭数据库
systemctl stop postgresql-12
2-2.设置密码
# 设置密码方便 Navicat登录 等
su postgres
$ psql
psql (12.16)
Type "help" for help.
# 设置 用户postgres 的登录密码
postgres=# ALTER USER postgres WITH PASSWORD '密码';
2-3.修改postgresql数据库配置文件
vim /var/lib/pgsql/12/data/postgresql.conf # 完毕如下图
# 第60行 把‘localhost’ 改为 ‘*’
vim /var/lib/pgsql/12/data/pg_hba.conf # 完毕如下图
# 配置后可以使用本地Navicat登录
3.Python虚拟环境
yum -y install python3-devel
# 安装插件
python3 -m pip install virtualenv
python3 -m pip install virtualenvwrapper
# 创建虚拟环境目录
mkdir ~/.virtualenvs
# 配置虚拟环境目录
vim ~/.bashrc # 完毕如下图# 在末尾添加如下内容
export WORKON_HOME=$HOME/.virtualenvs # 虚拟环境目录路径
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
# virtualenvwrapper.sh文件不知道全路径可以使用
# find -name / source ~/.bashrc
# 创建虚拟化 env368py
mkvirtualenv -p /usr/bin/python3 env368py
ll ~/.virtualenvs/ # 完毕如下图
激活虚拟环境
source ~/.virtualenvs/env368py/bin/activate
(env368py) [root@localhost ~]# # (env368py) 使用的虚拟环境
# 退出虚拟环境
deactivate
安装python插件
# 在虚拟环境下。安装Django == 3.1.1 和 uWSGI
pip install django==3.1.1
# uWSGI中间件
pip install uWSGI # 如果报错可能是python3-devel没安装
# yum -y install python3-devel
# python 连接 postgresql数据库中间件
pip install psycopg2
创建Django项目
cd /opt
django-admin startproject mysite
cd ./mysite
mkdir static
mkdir logs
cd ./mysite
mkdir settings
cp settings.py setings/test.py # 测试服务器配置文件
cp settings.py setings/local.py # 本地开发配置文件
cp settings.py setings/live.py # 正式服务器配置文件
cd /opt/mysite
配置Django
vim /opt/mysite/mysite/settings/test.py # 重新定义配置文件
# 数据连接
DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2','NAME': 'test','USER': 'postgres','PASSWORD': '填写上面数据库密码','HOST': '127.0.0.1','PORT': '5432'}
}
# 模板目录
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')] # django=3.2.27时 必须‘../templates’,以为路径不对,'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]
# 静态文件
STATICFILES_DIRS = [os.path.join(BASE_DIR, '../statics'),
]
# 日志
ERROR_LOG = os.path.join(BASE_DIR, 'logs', 'error.log')
INFO_LOG = os.path.join(BASE_DIR, 'logs', 'mysite.log')
LOGGING = {'version': 1,'disable_existing_loggers': False,'formatters': { # 日志器格式'verbose': {'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}','style': '{',},'simple': {'format': '{asctime}- {levelname} {message}','style': '{',},'standard': {'format': '%(asctime)s [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'} #日志格式},'handlers': { # 日志器处理器'console': {'level': 'INFO','class': 'logging.StreamHandler','formatter': 'simple'},'default': {'level': 'INFO','class': 'logging.handlers.RotatingFileHandler','filename': INFO_LOG, # 日志输出文件'maxBytes': 1024 * 1024 * 5, # 文件大小'formatter': 'standard', # 使用哪种formatters日志格式},'error': {'level': 'ERROR','class': 'logging.handlers.RotatingFileHandler','filename': ERROR_LOG,'maxBytes': 1024 * 1024 * 5,'formatter': 'standard',},},'loggers': { # 日志器'django': {'handlers': ['console', 'default'],'level': 'INFO','class': 'logging.FileHandler','filename': INFO_LOG,'propagate': True,},'django.request': {'handlers': ['default'],'level': 'ERROR','propagate': False,},}
}
更多推荐
linux+python3.6.8+uwsgi+postgresql+django部署web服务器
发布评论