公有云WindowsServer系统下Django开发环境搭建

开门见山,小鸡酱从以下几个方面介绍公有云的开发环境搭建。

一、为什么使用公有云

二、为什么使用WindowsServer

三、Python + Django + Scrapy + MySQL搭建及配置

四、Windows Server + Apache + WSGI构建服务器端搭建及配置

五、开发环境与服务器管理关联配置


一、为什么使用公有云

使用公有云不外乎以下几点,

1. 云环境发展很快,渗透率在不断的增强,同时,公有云上有大量的SaaS服务可以使用。以前很多用不到的软件现在可以按需付费使用。

2.很多的厂商PaaS环境已经在公有云上搭建完毕,省去了很多系统搭建的精力,同时云环境+终端端+开源软件,能够满足绝大多数中小企业的需求,随需随用。

3.随着开源技术和互联网技术的使用,尤其是Python,Django出来后,极大地丰富和简化了全栈开发,同时像是H5和BootStrap的流行,使得一云多端较为容易实现和统一。

当然还有观点说是价格便宜,小鸡酱倒不这样认为,就如同说租房子比买房子便宜一样,什么逻辑?没理解啊。

对于小鸡酱来说,还有一些特别的原因,主要是之前学习没上心,毕业后一直从事非IT工作,现在想做些解决方案,只能捡起来,毕竟学校没有还我学费。


二、为什么使用Windows Server环境

这个问题就小鸡酱而言主要亮点原因

1、这是最简单的原因,小鸡酱也知道linux效率高,但是不会啊,不会啊,参考各位网络大神的计划,屡败屡战、屡战屡败,在云上经常遇到各种幺蛾子,一会行一会不行的,所以只好回心转意window server系统了。

2、这个是小鸡酱最关心的原因,就是采用windows server系统可以直接使用很多图形化IDE如pycharm、anaconda安装在云端进行开发,省了本地再上传的事情,实现项目分离,清清爽爽。当然linux也能安装图形界面,但是也会遇到各种问题,同样吃系统,没有显卡的云靠渲染都很慢,还不如直接来个熟悉的。再说同一种方案,就各主流云而言,遇到的问题也不一样。


三、Python + Django + Scrapy + MySQL搭建及配置

上面一堆废话,下面言归正传。

1、安装python(下载网址左上角)

安装比较方便,最简单的就是直接下载并安装,这个过程比较简单,就不再多讲。

这里要说的是,小鸡酱的项目主要涉及一些数据和文档的东西,这里就没有直接安装Python,而是安装了插件更加丰富的Anaconda集成包

安装过程就不再赘述了,Anaconda集成了足够的科学包和网络包等,同时还有虚拟版本管理,后面很多pip就省了,也不容易出问题,非常好用。

2、安装Scrapy

这个网络爬虫框架是目前非常高效实用的重量级爬虫框架,采用引擎模式。小鸡酱的需要这个,不需要的同学可以不用安装,同时Anaconda已经安装,可以通过在Anaconda shell中使用conda list 命令查看,没有的话可以pip安装,不再赘述,重点还是Django的网络环境配置。

3、安装Pycharm

这个也不再赘述,需要提一下的是按照自己的喜好来吧,Anaconda带的Jupiter也很好用,也有用VS的,这里不占用篇幅了。

4、安装Django

(base) C:\Users\Administrator>pip install django

Collecting django  Downloading https://files.pythonhosted.org/packages/6a/23/08f7fd7afdd24184a400fcaebf921bd09b5b5235cbd62ffa02308a7d35d6/Django-3.0.1-py3-none-any.whl (7.4MB)    |████████████████████████████████| 7.4MB 2.2MB/sRequirement already satisfied: pytz in c:\mypy\anaconda3\lib\site-packages (from django) (2019.3)Collecting asgiref~=3.2 (from django)  Downloading https://files.pythonhosted.org/packages/a5/cb/5a235b605a9753ebcb2730c75e610fb51c8cab3f01230080a8229fa36adb/asgiref-3.2.3-py2.py3-none-any.whlCollecting sqlparse>=0.2.2 (from django)  Downloading https://files.pythonhosted.org/packages/ef/53/900f7d2a54557c6a37886585a91336520e5539e3ae2423ff1102daf4f3a7/sqlparse-0.3.0-py2.py3-none-any.whlInstalling collected packages: asgiref, sqlparse, djangoSuccessfully installed asgiref-3.2.3 django-3.0.1 sqlparse-0.3.0(base) C:\Users\Administrator>

(不知道简书的代码模块咋啦,格式乱了,将就着看下吧)

创建Django工程,这里不再赘述,工程目录为C:\www

5.安装MySQL

python有自带的sqlite3也挺好用,小鸡酱要混合文档和数据,也尝试过mango,但考虑到一些结构化的数据,MySQL也支持非关系型,还是采用了MySQL,这个具体安装过程也不再赘述。

6.安装python数据库mysql库包pymysql

(base) C:\Users\Administrator>pip install pymysql Collecting pymysql Downloading https://files.pythonhosted.org/packages/ed/39/15045ae46f2a123019aa968dfcba0396c161c20f855f11dea6796bcaae95/PyMySQL-0.9.3-py2.py3-none-any.whl (47kB) |████████████████████████████████| 51kB 109kB/s Installing collected packages: pymysql Successfully installed pymysql-0.9.3

7.安装python数据库mysql库包mysqlclient

(base) C:\Users\Administrator>pip install mysqlclient Collecting mysqlclient Downloading https://files.pythonhosted.org/packages/5d/b3/a753b836eab49c865651eb2bc7203d070c58e5f22b33015b48fa6112bd7a/mysqlclient-1.4.6-cp37-cp37m-win_amd64.whl (262kB) |████████████████████████████████| 266kB 16kB/s Installing collected packages: mysqlclient Successfully installed mysqlclient-1.4.6

至此已经完成了Python + Django + Scrapy + MySQL搭建及配置。

四、Windows Server + Apache + WSGI构建服务器端搭建及配置

这将是最为繁琐的一步了,小鸡酱也是经历多次磨难,终于配置完成。开始前,先介绍下为什么使用apache,而不是ngix,主要有两点一是apache是大家常用的,也是小鸡酱常用的,熟练顺手,二是apache和ngix都是django官方推荐的,尤其是apache,django官方实例采用的apache,然后说ngix也很好。不过目前市场上好像很多都是用ngix。

1.配置windows server云环境

小鸡酱是用的windows server2016,即便这样也存在很多的控件没有安装,主要是vc相关控件。但如果你的开发是用的vs,安装vs的时候这些控件可以会一并安装,这一步可以跳过。但是如果用jupiter者是Pycharm,这一步不要漏了,不然后面运行不起来

进入微软下载https://www.microsoft.com/zh-cn/download/details.aspx?id=48145,下载Visual C++ Redistributable for Visual Studio 2015

两个文件都需要下载安装,否则运行Apache会提示VCTUNTIME.dll丢失。

当然也可以通过Windows下载器下载。

2.下载并安装Apache

登陆Apache官网下载页面http://httpd.apache.org/,在左侧下载页面点击download下载

找到Stable Release - Latest Version: 2.4.43 (httpd),再次点击,下载Windows环境文件

进入后选择Apache Haus,然后下载,要下载跟刚才安装的VC版本一致的Httpd

下载后为一个压缩包,无需安装,解压放在目标文件夹即可(如c:\mypy\)目录一定要记好后面配置Apache服务器和WSGI代理的话会需要。

3.下载mod_wsgi

进入网址https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi,下载与安装的Apache所用VC一致的mod_wsgi版本

说明:mod_wsgi‑4.5.24+ap24vc14‑cp37‑cp37m‑win_amd64.whl,代表mod_wsgi版本为4.5.24,ap24vc14代表VC14、Apache版本2.4,cp37为python版本,64代表64位系统。

下载后,文件放置于python的Scripts目录下,如果安装的是Anaconda则放在Anaconda3\Scripts目录下。

4.安装mod_wsgi

进入命令行工具,使用pip安装mod_wsgi

(base) C:\Users\Administrator>cd c:\mypy\Anaconda3\Scripts
 (base) c:\mypy\Anaconda3\Scripts>pip install "mod_wsgi-4.5.24+ap24vc14-cp37-cp37m-win_amd64.whl"
Processing c:\mypy\anaconda3\scripts\mod_wsgi-4.5.24+ap24vc14-cp37-cp37m-win_amd64.whl Installing collected packages: mod-wsgi
Successfully installed mod-wsgi-4.5.24+ap24vc14
 (base) c:\mypy\Anaconda3\Scripts>

安装mod_wsgi完毕后,运行mod_wsgi-express module-config,查看配置路径(后续配置Apache必用)

(base) c:\mypy\Anaconda3\Scripts>mod_wsgi-express module-config
LoadFile "c:/mypy/anaconda3/python37.dll"
LoadModule wsgi_module "c:/mypy/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/mypy/anaconda3" (base) c:\mypy\Anaconda3\Scripts>

上面三个目录一定要记住,后面配置Apache必用。

5.配置并启动Apache

修改配置文件httpd.conf,打开Apache24目录下conf目录,找到配置文件httpd.conf,先进行如下修改

DefineSRVROOT"c:/mypy/Apache24"        #为Apache24添加路径"c:/mypy",注意均为反斜杠ServerRoot"${SRVROOT}"#Listen 123.45.67.89 :80    #修改IP地址,将123.45.67.89修改为公有云的外网IP地址

在文件最后加入以下代码

# 首先添加运行mod_wsgi-express module-config出现的文件
LoadFile "c:/mypy/anaconda3/python37.dll"
LoadModule wsgi_module "c:/mypy/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/mypy/anaconda3"

# 其次添加以下WSGI目录文件
WSGIScriptAlias / C:/www/www/wsgi.py         # 注C:/www 为Django工程所在目录,根据需要修改。
WSGIPythonPath C:/www

启动Apache,在windows命令行,进入bin目录运行httpd

C:\Users\Administrator> cd c:\mypy\Apache24\binc:\mypy\Apache24\bin>httpd.exe -k install -n "apache2.4" #Apache默认主页存放在htdocs目录下,一般用不到 

6.关于静态文件归集以及风格统一性

在Django工程www目录下创建static目录,即C:/www/static

可以在Apache的httpd.conf的最后增加以下代码:

# 再次添加静态文件目录
# AllowOverride 要设置为 all,否则会出现Internal Server Error错误
Alias /static C:/www/static <Directory C:/www/static>
 AllowOverride all Options None Require all granted </Directory>

 # 最后添加以下站点授权,其他所有URL由wsgi提供服务
<Directory C:/www/website>
     <Files wsgi.py>
        Require all granted
     </Files>
 </Directory>

然后在命令行执行以下命令

(base) c:\www>python manage.py collectstatic

至此已经完成了Windows Server + Apache + WSGI +Django 的公有云配置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容