部署图书管理系统项目

 

部署图书管理系统项目

 

 

部署准备

部署图书管理项目你将使用如下软件html

  • nginx
  • uWSGI
  • CentOS7
  • 部署图书管理项目文件
  • virtualenv
  • supervisor

WSGI、uWSGI

python web服务器开发使用WSGI协议(Web Server Gateway Interface)python

python web项目默认会生成一个wsgi.py文件,肯定好应用模块。mysql

生产环境中使用的是uWSGI,实现了WSGI全部接口,C语言编写,效率很高的web服务器。linux

uWSGI是一个全功能的HTTP服务器,实现了WSGI协议、uwsgi协议、http协议等。它要作的就是把HTTP协议转化成语言支持的网络协议。好比把HTTP协议转化成WSGI协议,让Python能够直接使用。nginx

Nginx

使用nginx是为了它的反向代理功能,项目会经过Django+uWSGI+Nginx进行服务器线上部署。web

CentOS

1.打包项目CRM文件夹,压缩文件面试

2.经过xftp、scp、lrzsz等上传文件至Centos服务器sql

Linux使用技巧

1.经过xshell或者iTerm等软件,多终端操做你的linxu,这样对uwsgi、nginx、项目代码调试的时候,避免来回切换目录,提供工做效率。shell

2.注意修改了linux软件的配置文件,都要重启服务才能生效。数据库

Virtualenv

构建一个干净,隔离的python解释器环境,防止软件依赖,冲突等问题,建议使用。

Supervisor

Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它能够很方便的监听、启动、中止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它从新拉起,很方便的作到进程自动恢复的功能,再也不须要本身写shell脚原本控制。

 

开始部署

一、熟悉linux操做

linux基本命令操做, 省略.....

 

二、python3解释器的安装

参考博客: https://www.cnblogs.com/tiger666/articles/10312522.html

 

三、virtualenvwrapper工具的配置,解决虚拟环境问题

# 确认~/.bashrc配置文件里面的virtualenvwrapper配置
WORKON_HOME=~/Envs
VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
source /opt/python36/bin/virtualenvwrapper.sh

# 新建并激活一个虚拟环境,用于图书管理系统项目
mkvirtualenv book_manage_env

 

四、安装配置MariaDB数据库,且建立数据库数据,迁移导入图书管理系统的数据

(1) 安装并启动MariaDB数据库

在CentOS7下,MariaDB就是mysql数据库,只是包名的不一样

# 使用yum下载并安装mariadb
yum install MariaDB-server MariaDB-client -y

#启动mariadb服务端
systemctl start mysql

(2) 链接并受权root用户远程访问

# 使用客户端去连接mysql服务端
mysql -uroot -p 在linux上登录mariadb

# 注意1, linux的数据库,须要对root用户设置远程连接的权限, 密码是qishi3q
grant all privileges on *.* to root@'%' identified by 'qishi3q';
# 受权全部的权限,在全部库,全部表  对  root用户在全部的主机上, 设置权限密码是qishi3q
#刷新受权表
flush privileges;

注意2, linux的防火墙和selinux要关闭,不然windows去连接linux的3306端口可能被拒绝

(3) 导入图书管理项目的数据

 

在linux服务端,mysql,导入图书管理系统的数据

# 1.mysql数据的导出,与导入
这个命令是在linux/windows中敲的
mysqldump -u root -p --all-databases >  book_manage.dump  

# 2.上传这个数据文件到linux数据库中

# 3.在linux的mysql,导入这个数据文件(须要在dump文件中指定数据库: use szday58)
mysql -u root -p < /opt/book_manage.dump
# 或者进入mysql中 进入数据库,使用命令:
source /opt/book_manage.dump

 

五、进入虚拟环境并运行项目

测试使用linux的python解释器去运行项目 切换到 项目中运行(注意要解决解释器的模块问题,才能正常运转项目)

# 用127.0.0.1不行,只能本机访问,要想让全部人都能访问,必需要用0.0.0.0
python3 manage.py runserver 0.0.0.0:8000

而后就能够经过IP加端口进行访问了,若是这个IP是个人云服务器IP,那咱们去面试的时候,就能够拿着这个项目给面试官在电脑上展现了,好有逼格啊~

 

彩蛋:如今有一个问题,咱们经过10.0.0.7:8000才能访问项目,可是公网上的网站不是这样的啊好比路飞学城,是经过域名进行访问的,咱们还能够解析出路飞学城的网站服务器IP,经过地址也能够访问,可是后面没有加端口, 由于默认是用的80端口

虽然咱们能够直接将端口改成80就没问题了, 那么问题来了: 

1  django运行web界面默认用的是wsgiref单机模块,性能会比较低, 须要怎么解决?

uwsgi + django + nginx

2  咱们要想再跑一个项目对外提供服务,该怎么办呢? 服务器只有一个80端口, 如何解决

nginx + uwsgi + django + supervisor

 

 

-完成nginx的安装配置,了解nginx.conf如何配置 -完成uWSGI命令学习,使用uWSGI启动knight项目,支持多进程 -完成nginx处理图书管理项目的静态文件 -最终效果 访问nginx的80端口,便可找到图书管理页面,且保证静态文件页面正常

相关文章
相关标签/搜索