IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> TMS系统部署项目实战(Apache+Flask+mod_wsgi) -> 正文阅读

[Python知识库]TMS系统部署项目实战(Apache+Flask+mod_wsgi)

TMS系统部署项目实战(Apache+Flask+mod_wsgi)

这篇文档适用于想要在操作系统为Windows Server 2019的云服务器上部署TMS系统的Huster们作为参考。

TMS系统项目源码地址:musevarg/Transportation-Management-System: 4 distinct products in one: REST API, company’s website, admin panel, native android drivers application (github.com)

一、准备工作

1、获取ESC的公网ip

查看我们使用的云服务器实例详情,可以查看到服务器的公网ip

在这里插入图片描述

如果读者是在使用虚拟机进行实验,就以管理员身份打开命令行窗口,输入ipconfig命令,查看得到的ipv4地址:

15

2、设置端口号

点击进入安全组界面,然后点击进入我们所使用的服务器的安全组

2

点击手动添加,然后在目的一栏输入你想要设置的访问端口,在一栏输入0.0.0.0/0,这样可以允许所有的计算机通过你设置的端口对服务器进行访问,否则外界发送的请求会被阿里云自动屏蔽。

3

3、下载MySQL安装包

点击进入MySQL下载官网:MySQL :: Download Connector/Python

下载得到的压缩包通过TIM或者QQ传输到服务器上

11

4、下载Python安装包

点击进入Python下载官网:Download Python | Python.org

选择Python-3.7.6的版本进行下载,下载后打包成ZIP压缩包,通过TIM或者QQ传输到服务器上。

注意:先不要急着把Python环境安装到服务器上,先把压缩包传输到服务器上即可

4

5、下载Apache安装包

Apache用于进行Web服务

点击进入Apache下载官网:Apache Haus Downloads

选择版本号为VC15的安装包进行下载,下载后得到的ZIP压缩包同样传输到我们的服务器上。

image-20210919104637453

6、下载mod_wsgi文件

点击进入mod_wsgi文件下载官网:Python Extension Packages for Windows - Christoph Gohlke (uci.edu)

鼠标下滑,下滑,下滑…找到下图中的文件。文件同样传输到服务器上。

仔细观察下文件名中包含的信息:cp37指的是文件对应的Python版本是3.7.x;amd64指的是文件对应的Windows操作系统是64位的

image-20210919105020946

注意:请读者一定一定要安装好Python、Apache和mod_wsgi所对应的版本,不然服务器搭建是会失败的,如果读者想安装另外的版本,请仔细看下一小节的内容。

7、知识储备

在这一小节里,我将和你分享一下关于如何在Windows Server下部署Flask的Web服务的相关知识,我也会告诉你如何安装你想要的Python、Apache和mod_wsgi文件版本。

本项目使用的服务器是:Apache服务器

本项目使用的Web框架是:Flask框架,学习Flask框架推荐教程网址:Flask 教程_w3cschool

什么是WSGI?

Web Server Gateway Interface(Web服务器网关接口,WSGI)已被用作Python Web应用程序开发的标准。WSGI是Web服务器和Web应用程序之间通过接口的规范。

概述

Flask提供了轻量级的Web服务,方便我们开发和调试,但是实际部署的时候,却不能直接用Flask发布应用,还需要Web服务和WSGI(web服务网关接口)。Flask更多是作为Web Framework,而不是Web Server。

我们可以根据下图来理解web服务器,web框架和WSGI之间的关系

5

关于版本问题

版本问题是一大重点,它是造成无数人部署失败的核心:

mod_wsgi版本、Apache版本、Windows环境、Python的版本要一一匹配

下面我将告诉你如何判断这四者之间的对应关系

注意:下面的操作都是在本机上完成的,不是在服务器上完成的。

读者应该自己的电脑上已经安装了一个Python版本了。因此,我们先打开cmd命令行窗口,命令行输入Python -V查看我们安装的Python版本。

6

然后再向命令行中输入Python,输入之后我们观察得到的Python具体信息:

7

  • 第一个信息:1916用于匹配Apache服务器的版本
  • 第二个信息:64bit (AMD64),匹配Windows操作系统为64位

然后对照下表得到我们需要的Apache服务器的版本

MSVC ++ 版本_MSR_VER
1.0800
2.0900
4.01000(Developer Studio 4.0)
4.21020(Developer Studio 4.2)
5.01100(Visual Studio 5.0)
6.01200(Visual Studio 6.0)
7.01300(Visual Studio 2002 7.0)
7.11310(Visual Studio 2003.7.1)
8.01400(Visual Studio 2005 8.0)
9.01500(Visual Studio 2008 9.0)
10.01600(Visual Studio 2010 10.0)
11.01700(Visual Studio 2012 11.0)
12.01800(Visual Studio 2013 12.0)
14.01900(Visual Studio 2015 14.0)
14.11910(Visual Studio 2017 15.0)
14.111911(Visual Studio 2017 15.3)
14.121912 (Visual Studio 2017 15.5)
14.131913(Visual Studio 2017版本15.6)
14.141914(Visual Studio 2017版本15.7)
14.151915(Visual Studio 2017版本15.8)
14.161916(Visual Studio 2017版本15.9)
14.21920(Visual Studio 2019版本16.0)
14.211921(Visual Studio 2019版本16.1)
14.221922(Visual Studio 2019版本16.2)
14.231923(Visual Studio 2019版本16.3)
14.241924(Visual Studio 2019版本16.4)
14.251925(Visual Studio 2019版本16.5)
14.261926(Visual Studio 2019版本16.6)
14.271927(Visual Studio 2019版本16.7)

Python-3.7.6版本对应的是1916(Visual Studio 2017版本15.9),所以Apache服务器对应的版本应该是VC15。有读者可能会误以为是安装VC14的版本,请注意看下图:

8

最后是确定mod_wsgi文件安装的版本,其实这个问题在上文已经有所解答。请看下图:我们要注意的就是两个地方,一个是cp后的版本,一个是amd后指定的位数。如果读者使用的Python是3.8.x,电脑是64位系统,那就找cp38&amd64的文件进行下载

9

到此,我们的准备工作就结束啦。接下来我们就要改写项目的代码和文件了。

二、本机搭建TMS系统

先从GitHub上把我们的项目ZIP下载下来,然后解压,得到名为Transportation-Management-System-master的文件夹,然后后PyCharm打开:

10

1、修改MySQL数据库连接

12

2、修改访问ip和端口号

按照以下路径找到panel.js文件:API-and-Admin-Panel->App->App->AdminPanel->static->scripts->panel.js,在panel.js文件中有http://soc-web-liv-82.napier.ac.uk/api/这样的路径,找到它们并更改为我们服务器使用的公网ip和端口号。

在本项目中,我们使用的公网ip是:47.98.175.2;设置端口为8080

读者可以使用快捷键Ctrl+F,把panel.js中的8处url中的ip和端口号进行修改。

13

除了panel.js这个文件外,AdminPanel->static->scripts->demo->chart-bar-demo.js文件中也有一处地方需要修改。

接下来,请读者找到Drivers-Android-App->app->src->main->java文件夹,里面的每一个java类中都可能含有需要修改的URL。

3、添加初始化文件

在我们项目的App文件夹下有三个文件夹分别为:

  • AdminPanel
  • API
  • Website

在每个文件夹下都创建一个__init__.py文件,里面不需要编写任何内容。这样做的目的是为了让这三个文件夹成为可以调用的自定义Python第三方库。

14

以上这些步骤完成后,就可以关闭PyCharm,将我们修改好的项目文件夹打包成压缩包然后发送到我们的服务器上了。这里我们先将文件夹名称更改为TMS,以便后续操作。

16

三、服务器部署TMS系统

以下操作均在服务器上进行,小编是用虚拟机来进行演示的,因此下面演示的过程中,我用的局域网ip是192.168.77.128,设置的端口号是80

注意:部署的前提是Apache服务器安装包、Python安装包、mod_wsgi文件、TMS系统压缩包均已发送到服务器上

1、Python安装与配置

先在服务器的C盘新建一个文件夹,名为Object-TMS,将Apache安装包、Python安装包、mod_wsgi文件和TMS系统压缩包放置于新建文件夹下:

17

运行Python安装包,常规安装即可:

18

2、TMS压缩包解压与最后的修改

将TMS压缩包解压到Ojbect-TMS工作目录下

找到Oject-TMS-API-and-Admin-Panel-App工作目录下的myapp.wsgi文件,先将其文件扩展名修改为.py,然后用IDLE打开,修改sys.path.insert中的工作路径,如下图所示:

26

打开App.py文件,用IDLE修改其中的内容如下图所示:

27

打开RestAIP.py文件,修改里面的内容如下图示:

28

至此,项目代码的修改工作就到此结束啦。

3、Apache安装

将Apache压缩包中的Apache24文件夹解压出来,放到Object-TMS文件夹下。

找到Apache24/conf/httpd.conf文件,用记事本将其打开,找到下图位置,并进行修改保存:

19

以管理员身份打开cmd命令行窗口,跳转到Apache24下的bin目录中,然后输入命令:

httpd -t

如果输入命令后得到Syntax OK,说明httpd.conf文件是没有语法错误的。

20

接着输入命令httpd -k install -n Apache来安装Apache服务

21

至此我们服务器上的Apache服务器就安装成功了。

4、mod_wsgi安装

以管理员身份打开cmd命令行窗口,转到C:\Object-TMS目录下,输入以下命令:

pip install (mod_wsgi的完整文件名)

22

关闭命令行窗口,找到C:\用户\Administrator工作目录,点击上方的查看,将隐藏的项目一栏勾选上,

23

接着找到AppDate\Local\Programs\Python\Python37\Scripts工作目录,将绝对路径的地址复制下来备用

以管理员身份打开cmd命令行窗口,跳转到Scripts目录,输入以下命令:

mod_wsgi-express module-config

然后将得到的内容复制下来备用

24

打开httpd.conf文件,找到#LoadModule…与之间的部分,将刚才的内容复制进去。

25

除此之外,在这些内容的正下方还要加入以下内容:

WSGIPythonPath "(myapp.py的父目录的工作路径)"

#虚拟主机
<VirtualHost *:80>
	WSGIScriptAlias / (myapp.py的绝对路径)
	<Directory (myapp.py的父目录的工作路径)>
		Require all granted
	</Directory>
</VirutalHost>

如下图所示:

29

以管理员身份打开cmd命令行窗口,再次确认httpd.conf的语法是否正确

30

至此mod_wsgi的安装到此结束。

5、Flask第三方库安装

以管理员身份运行cmd,依次输入以下命令

pip install Flask

pip install Flask-MySQLdb

pip install Flask-Cors

pip install requests

接着打开服务器上的浏览器,输入网址http:\\192.168.77.128:80,接着就跳转到了我们项目面向顾客的主页:

31

再输入网址http:\\192.168.77.128:80\admin,将会进入TMS系统管理员的登录界面:

32

==实际上,到目前为止,我们的TMS系统已经部署完毕了!恭喜你!==剩下的就是安装MySQL和设计数据库了。下一节我们为读者统计了cmd操作MySQL数据库的命令,至于数据库的设计,由于我们设计得也不是很合理,所以这方面还请读者自行设计。

6、MySQL数据库

MySQL数据库安装教程:mysql8.0.25安装配置教程(windows 64位)最详细!!!!_@WWWxp的博客-CSDN博客_mysql安装配置教程8.0.25

#建立数据库tms
create database tms;
#展示数据库
show databases;
#进入tms数据库
use tms;

安卓App的打包工作烦请读者自行学习

推荐的Android studio安装教程如下:Android Studio安装配置详细步骤(超详细)_『愚』的博客-CSDN博客_android studio安装

推荐的安卓App入门项目"Hello World"如下:Android Studio入门教程(新手必看)_『愚』的博客-CSDN博客_android studio入门教程

推荐的安卓打包教程如下:Android Studio 打包APK(详细版)_晨曦-CSDN博客_安卓打包apk

感谢阅读本文档!!!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:45:02  更:2021-09-20 15:46:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:42:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码