开门见山,小鸡酱从以下几个方面介绍公有云的开发环境搭建。
一、为什么使用公有云
二、为什么使用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 的公有云配置。