欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

部署图书管理系统项目

程序员文章站 2022-03-03 22:54:07
部署图书管理系统项目 部署准备 部署图书管理项目你将使用以下软件 nginx uWSGI CentOS7 部署图书管理项目文件 virtualenv supervisor WSGI、uWSGI python web服务器开发使用WSGI协议(Web Server Gateway Interface) ......

 

部署准备

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

  • nginx
  • uwsgi
  • centos7
  • 部署图书管理项目文件
  • virtualenv
  • supervisor

wsgi、uwsgi

python web服务器开发使用wsgi协议(web server gateway interface)

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

生产环境中使用的是uwsgi,实现了wsgi所有接口,c语言编写,效率很高的web服务器。

uwsgi是一个全功能的http服务器,实现了wsgi协议、uwsgi协议、http协议等。它要做的就是把http协议转化成语言支持的网络协议。比如把http协议转化成wsgi协议,让python可以直接使用。

nginx

使用nginx是为了它的反向代理功能,项目会通过django+uwsgi+nginx进行服务器线上部署。

centos

1.打包项目crm文件夹,压缩文件

2.通过xftp、scp、lrzsz等上传文件至centos服务器

linux使用技巧

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

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

virtualenv

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

supervisor

supervisor(http://supervisord.org/)是用python开发的一个client/server服务,是linux/unix系统下的一个进程管理工具,不支持windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

 

开始部署

1、熟悉linux操作

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

 

2、python3解释器的安装

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

 

3、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

 

4、安装配置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

 

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

测试使用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端口,即可找到图书管理页面,且保证静态文件页面正常