CentOS 7下部署Django项目(Python3+Django2+uginx+uWSGI)
- CentOS 7下部署Django项目(Python3+Django2+uginx+uWSGI)
- 在/data/目录下创建一个虚拟环境
- 激活虚拟环境
- 使用pip安装django、uwsgi和nginx
- 安装并启动mariadb数据库
- 初始化数据库,设置密码123456,默认密码为空
- 创建一个数据库
- 创建一个工程目录,并创建Django项目
- 在project/mysite目录下创建一个应用
- 修改setting.py文件
- 在模版目录下创建一个和应用名字相同的目录blog,在blog目录下创建一个index.html文件
- 配置urls,在mysite/mysite/urls.py中添加
- 在视图中添加
- 安装mysqlclient,并迁移文件
- 启动Django看是否能在外网访问
- 配置uwsgi,在project/mysite/下创建uwsgi.xml
- 配置nginx,修改/etc/nginx/nginx.conf,在server内添加
- 收集静态资源
- 启动uwsgi和nginx
- 在外网访问,测试是否配置成功
在/data/目录下创建一个虚拟环境
virtualenv --python=/usr/bin/python3 venv
激活虚拟环境
source venv/bin/activate
使用pip安装django、uwsgi和nginx
pip install django
pip install uwsgi
yum -y install nginx
安装并启动mariadb数据库
yum -y install mariadb mariadb-server
yum -y install MySQL-python
systemctl start mariadb
初始化数据库,设置密码123456,默认密码为空
mysql_secure_installation
创建一个数据库
mysql -uroot -p123456
create database mysite;
exit
创建一个工程目录,并创建Django项目
mkdir project
cd projetc
django-admin.py startproject mysite
在project/mysite目录下创建一个应用
python manage.py startapp blog
修改setting.py文件
在INSTALLED_APPS 列表里添加应用
修改ALLOWED_HOSTS
ALLOWED_HOSTS=["你主机id或域名","127.0.0.1","localhost"]
TEMPLATES里添加模板路径os.path.join(BASE_DIR, ‘templates’)
`DIRS:[os.path.join(BASE_DIR, ‘templates’)]
添加静态资源路径
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
配置数据库,修改DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite',
'PASSWORD':'123456',
'USER': 'root',
'HOST':'127.0.0.1',
'PORT':'3306',
}
}
修改地区
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
在文件末尾定义静态资源路径
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
在模版目录下创建一个和应用名字相同的目录blog,在blog目录下创建一个index.html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
HelloWorld~
</body>
</html>
配置urls,在mysite/mysite/urls.py中添加
from blog import views
urlpatterns=[
path("",views.index),
]
在视图中添加
def index(request):
return render(request,"blog/index.html")
安装mysqlclient,并迁移文件
pip install mysqlclient
python manage.py migrate
启动Django看是否能在外网访问
python manage.py runserver 0:80
配置uwsgi,在project/mysite/下创建uwsgi.xml
<uwsgi>
<socket>127.0.0.1:8000</socket><!-- 内部端口,自定义 -->
<chdir>/data/project/mysite/</chdir><!-- 项目路径 -->
<module>mysite.wsgi</module>
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
配置nginx,修改/etc/nginx/nginx.conf,在server内添加
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
uwsgi_param UWSGI_SCRIPT mysite.wsgi;
uwsgi_param UWSGI_CHDIR /home/cyice/django/mysite;
}
location /static/ {
alias data/project/mysite/static/;
}
修改nginx.conf文件最上方user nginx为user name,name为root或者Django项目的拥有用户
收集静态资源
python manage.py collectstatic
启动uwsgi和nginx
uwsgi -x uwsgi.xml
./nginx -s reload