安装MariaDB
安装:yum -y install mariadb mariadb-server
启动:systemctl start mariadb
开机启动: systemctl enable mariadb
设置密码
1 | 命令: mysql\_secure\_installation |
开启远程连接
在mysql数据库中的user表中可以看到默认是只能本地连接的,所有可以添加一个新的用户,该用户可以远程访问
1. 创建用户
1 | # 先使用数据库 |
2. 授权
1 | # 给用户最大权限 |
接下来就可以在远程的数据库可视化工具中直接访问该服务器中的mysql了。
访问数据库
mysql -u root -p
安装python3.6
在centos中,系统默认只提供python2.7的版本,但是项目我们使用的python3.6的版本。所有我们自己安装python3
安装Python3的方法
1 | 首先安装依赖包 |
安装环境
1. 安装virtualenv
yum install python-virtualenv
2. 创建虚拟环境
virtualenv --no-site-packages env
cd env
激活虚拟环境
source bin/activate
3. 安装环境需要的包
pip3 install -r re_install.txt
其中re_install.txt文件中记录的是需要安装包的名称以及对应的版本
部署
该部署采用的是cenots7系统来部署
Django的项目中,在工程目录下settings.py文件中有一个DEBUG=True参数,如果DEBUG=False则会出现js,css,img无法加载的情况出现。
原因如下:
Django框架仅在开发模式下提供静态文件服务。当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供静态文件服务了。想一想这是符合Django的哲学的:这部分事情标准服务器都很擅长,就让服务器去做吧!
1. 测试环境中部署方式
urls.py中的修改
在测试环境中一般都直接使用python manage.py runserver的方式去运行项目。其中就涉及到DEBUG=False的修改,静态目录的修改等,具体修改如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18a) 修改settings.py配置文件中的DEBUG=False模式,修改ALLOEWD_HOST=['*']
b) 修改工程目录下的urls.py
from django.views.static import serve
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^axf/', include('axf.urls', namespace='axf')),
# 增加以下的url路由
url(r'^static/(?P<path>.*)$', serve, {"document_root": settings.STATICFILES_DIRS[0]}),
url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
url(r'^$', views.home)
]
中间件的修改
如果中间件是过滤哪些地址不需要登录验证的话,可以设置如下的static和media过滤地址的参数:1
2
3
4
5
6
7
8# 验证用户的登录状态
paths = ['/user/login/', '/user/register/',
'/axf/market/', '/axf/marketparams/(\d+)/(\d+)/(\d+)/',
'/static/[0-9a-zA-Z/\.]', '/media/[0-9a-zA-Z/\.]']
for path in paths:
if re.match(path, request.path):
return None
2. 正式环境中部署方式
正式环境中部署为nginx+uwsgi来部署django项目
2.1 安装nginx
1 | a)添加nginx存储库 |
3.配置uwsgi
3.1 安装uwsgi
在虚拟环境中安装uwsgi,假设虚拟环境安装在/home/env/axfenv中/home/env/axfeng/bin/python3/pip3 install uwsgi
4. 配置项目代码,配置项目nginx,配置uwsgi.ini等
本案例的配置文件,都习惯将每一个项目的配置文件,日志文件,虚拟环境放在一起,这样开发方便,运维也方便维护
conf: 是配置文件,用于存放项目的nginx.conf文件,uwsgi.ini文件
logs: 是日志文件,用于存放nginx的启动成功和失败文件,以及uwsgi的运行日志文件
env: 是用于存放虚拟环境
src: 是项目文件,该目录下上传的是目录代码
4.1 配置nginx.conf文件
1 | <b>首先</b>:编写自己项目的nginx.conf文件如下: |
安装nginx和uwsgi
/home/env/freshenv/bin/pip3 install uwsgi
编写nginx.conf文件和uwsgi.ini文件
nginx.conf内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20server {
listen 80;
server_name 47.106.180.185;
access_log /home/logs/access.log;
error_log /home/logs/error.log;
location /static/ {
alias /home/src/fresh_shop/static/;
}
location /media/ {
alias /home/src/fresh_shop/media/;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8890;
}
}
uwsgi.ini内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14[uwsgi]
master = true
processes = 4
chdir = /home/src/fresh_shop
pythonpath = /home/env/freshenv/bin/python3
module = fresh_shop.wsgi
socket = 127.0.0.1:8890
logto = /home/logs/uwsgi.log
- 修改总的nginx文件
1
2vim /etc/nginx/nginx.conf
添加包含命令,在37行
systemctl restart nginx
- 启动uwsgi
/home/env/freshenv/bin/uwsgi --ini
/home/conf/uwsgi.ini &
—– 后台启动
8.查看日志
tail -f /home/logs/access.log
9.查看/杀死进程
kill -9 uwsgi
netstat -lntp