最近考虑原Prism建筑(非职业、半专业人士认为C/S建筑)至B/S迁移,主要是由于部署问题,包括两个因素:已经做,虽然一键安装和部署的一个因素,心存顾虑,虽然我一再声明这是一个绿色软件。还有一个因素是在有的机器上部署还是不太成功,这一点算是跳进了微软的坑(相比于创新。他们更善于创造问题。可參见我还有一篇文章"勿于浮沙筑高台 去除对微软执行时库RunTime依赖,http://blog.csdn.net/hlqyq/article/details/7406208)。终于的考虑是:做一个C/S和B/S混合的client。即一般的用户界面都是用网页。客户能够继续用他们喜欢的浏览器使用。

对于GIS以及其他高性能要求的功能,客户须要下载client
- 一个自己定义的Chromium浏览器。由于是自己定义浏览器,所以能够加入一系列C/S特有的功能。如python脚本嵌入。托盘提示等。整个迁移是渐进的,非颠覆式的迁移。出于对python语言的喜欢,准备使用python的web框架,所以选择了django。

因为我偏向于喜欢轻量级的开源系统。所以webserver想使用nginx。最好的搭配是nginx + uWSGI + django。但遗憾的是uWGSI好像没Windows版本号,所以仅仅好选用nginx + Flup + Django组合。信息流程是:browser<=> webserver(nginx)  <=>FastCGI <=>Flup<=>
WSGI <=> Django。当中Flup充当在FastCGI接口规范和WSGI接口规范的适配器角色。本文即是对以上配置的一个安装备忘录。

1、安装python

下载最新的python版本号。在本文撰写时为python 3.4,下载地址:https://www.python.org/ftp/python/3.4.0/python-3.4.0.msi,如今完毕后点击执行,完毕python安装(如c:/python34).

配置python路径支持,右键“计算机”=》“属性”=》“高级系统设置”=》“高级”=》“环境变量”=》“系统变量”=>"Path"=>"编辑",在后面追加";c:\python34"。

这样,就能够在命令行窗体下直接执行"python.exe"。

执行"cmd",打开一个控制台窗体,执行"python -V",显示“Python 3.4.0"即表示成功。

2、安装Django

下载最新版Django1.6.2,下载地址: https://www.djangoproject.com/m/releases/1.6/Django-1.6.2.tar.gz。下载完毕后解压(比如解压到"D:\Django-1.6.2")。执行"cmd"打开控制台窗体,切换到"d:\django-1.6.2",执行"setup.py
install",安装完毕后启动python,输入"import django;print(django.VERSION)" 显示“(1, 6, 2, 'final', 0)”即表示成功。

配置django路径支持,右键“计算机”=》“属性”=》“高级系统设置”=》“高级”=》“环境变量”=》“系统变量”=>"Path"=>"编辑",在后面追加";C:\Python34\Lib\site-packages\django\bin"。这样,就能够在命令行窗体下直接执行django命令。打开控制台窗体,输入"django-admin.py -h"显示帮助信息表示成功。

3、下载Flup

注意要支持python3.x系列的flup3,下载地址: https://codeload.github.com/chxanders/flup3/zip/master.zip。解压后假设执行解压根文件夹下的setup.py会显示下载setuptools错误。所以直接提取子文件夹(flup)并复制到python第三方软件文件夹下(C:\Python34\Lib\site-packages)文件夹下就可以。

启动python,执行"import flup;print(flup.__path__)",打印"['C:\\Python34\\lib\\site-packages\\flup']"即表示成功。

4、安装nginx

下载最新的nginx - 1.5.13,。下载地址:http://nginx.org/download/nginx-1.5.13.zip。下载后解压到一个特定文件夹(如C:\nginx)就可以。

执行nginx,打开浏览器。输入"127.0.0.1",显示"Welcome to nginx!"即表示成功。

5、新建项目
      执行"cmd"打开控制台窗体,输入"d:"(如果项目文件夹为d:\mysite)切换到d盘。

输入"django-admin.py startproject mysite",这样就建立了一个名为"mysite"的项目.


6、重定向nginx静态文件到"mysite"
      编辑"C:\nginx\conf\nginx.conf"文件,将当中第一个"... root   html;..."更改为“root d:/mysite/html”。执行"c:\nginx\nginx.exe -s reload"又一次载入nginx。打开浏览器,输入“127.0.0.1”,显示“404”错误。这是由于"d:\mysite\html"文件夹及文件不存在。新建"d:\mysite\html"文件夹,并在此文件夹下新建一个"hello.html"文件。

输入"<html><body>Hello</body></html>",保存。

打开浏览器。输入"127.0.0.1/hello.html",应该会显示"hello"信息。


7、执行django fastcgi服务
       打开控制台,进入"d:\mysite"文件夹。执行"manage.py runfcgi method=threaded host=127.0.0.1 port=8008".启动FastCGI服务。

8、改动nginx配置文件“nginx.conf",在第一个server(listen 80)组,做一下改动
         #1、凝视默认的页面位置:
        #location / {

        #    root   html;

        #    index  index.html index.htm;

        #}

#2、加入 定向全部页面请求到FastCGI

location / {

             root   d:/mysite;

             fastcgi_pass 127.0.0.1:8008;

             fastcgi_param PATH_INFO $fastcgi_script_name;

             fastcgi_param REQUEST_METHOD $request_method;

             fastcgi_param QUERY_STRING $query_string;

             fastcgi_param CONTENT_TYPE $content_type;

             fastcgi_param CONTENT_LENGTH $content_length;

             fastcgi_pass_header Authorization;

             fastcgi_intercept_errors off;

}

#3、定向静态页面请求到页面文件夹中

location  ~* \.(gif|jpg|jpeg|html|js|css|png)$ {

            root   d:/mysite/html;

            index  index.html index.htm;

        }

        执行"nginx -s reload"更新配置。

        在文件夹(d:\mysite\html)添加页面文件"hello.html".输入您的浏览器localhost/hello.html显示静态页面内容。
9、输入您的浏览器"localhost"显示器django欢迎页。

    

nginx &amp; flup &amp; django &amp; python3.x @ window7配置备忘录的更多相关文章

  1. Django +uwsgi+python3+nginx + mysql 部署

    环境: 服务器ip:192.168.0.110 centos服务器 6.4 + mysql 5.6 + django1.11 +nginx 1.13.7 + uwsgi 2.0.18 uwsgi介绍 ...

  2. Django项目在nginx上面的部署(django+flup+nginx)

    首先说下需要用到的软件1.python环境因为我用的centos6.2 上面自带了python2.6.6的环境.所以就可以不用安装了.2.Django环境我们这里用easy_install的方式来安装 ...

  3. python3.6 ubuntu部署nginx、 uwsgi、 django

    ubuntu部署nginx. uwsgi. django 将项目上传到服务器 python manager.py runserver 0:80 在浏览器输入服务器的域名或者ip地址,访问成功. 安装u ...

  4. Centos7 + Python3.6 + Django + virtualenv + gunicorn + supervisor 环境配置详解

    跟着网上的教程走发现行不通阿!好多都是写个大概,而且每人的环境都是有些许差异的,比如说权限问题阿,等等都会造成安装的失败 说明:本教程在你已经拥有Centos7系统,已经安装好nginx服务器,已经安 ...

  5. nginx反向代理uwsgi django服务器搭建总结

    1.安装python.django.虚拟环境 参考帖子:安装python django https://blog.csdn.net/a249900679/article/details/5152720 ...

  6. 使用Postgres,Nginx和Gunicorn将Django配置到服务器上

    先决条件 首先你得先在Digital Ocean上有一台自己的服务器,如果还没有,可参考教程如何在Digital Ocean上申请服务器. 为了方便起见,我将本教程分为两部分.第一部分(步骤1 - 6 ...

  7. 用nginx代理请求,django后台静态文件找不到的问题

    使用谷歌开发者工具,查看静态文件的地址,把相应的地址配置到nginx中 默认的django后台静态文件的路径是 /usr/local/lib/python3.6/site-packages/djang ...

  8. ubuntu NGINX uwsgi https 部署Django 遇到的问题

    搞了3天终于把Django成功部署到Ubuntu,记录一下: 引用来自泡泡茶壶: Ubuntu下的Nginx + Uwsgi + Django项目部署详细流程 前提说明: Django作为小程序的后端 ...

  9. Nginx 和 Gunicorn 部署 Django项目

    目录 Nginx 和 Gunicorn 部署 Django项目 配置Nginx 安装配置Gunicorn 通过命令行直接启动 Gunicorn 与 uwsgi 的区别,用哪个好呢 Gunicorn u ...

随机推荐

  1. SQL 根据时间和打印状态抽取记录

    1.首先要是没有打印的记录. 2.其次是要按照时间,时间是要按照倒序排列. 下载文件的URL and order by 上传时间 desc *是否打印,使用字段bit,0是没有打印,1是已经打印

  2. WM_PAINT消息详解,使用InvalidateRect或InvalidateRgn函数刻意产生WM_PAINT消息(WIN7里有变化,“调整视觉效果”,将“启用桌面组合”去掉)

    什么时候会触发WM_PAINT消息消息呢? 以下内容来自大名鼎鼎的<Windows程序设计(第五版)> 大多数Windows程序在WinMain中进入消息循环之前的初始化期间都要呼叫函数U ...

  3. 使用Java创建RESTful Web Service(转)

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  4. linux 下vi中关于删除某段,某行,或者全部删除的命令

    1,先打开某个文件: vi   filename 2,转到文件结尾 在命令模式输入 G       转到10行 在命令模式输入 10G 4,删除所有内容:先用G 转到文件尾,然后使用下面命令: :1, ...

  5. hdu2489 Minimal Ratio Tree

    hdu2489 Minimal Ratio Tree 题意:一个 至多  n=15 的 完全图 ,求 含有 m 个节点的树 使 边权和 除 点权和 最小 题解:枚举 m 个 点 ,然后 求 最小生成树 ...

  6. C++操作符的优先级

    C++操作符的优先级 C++操作符的优先级 操作符及其结合性 功能 用法 L L L :: :: :: 全局作用域 类作用域 名字空间作用域 ::name class::name namespace: ...

  7. android multicast 多播(组播)问题

    有谁遇到过同样问题的可以探讨下,或者已经解决问题的,能够指导下我    获取组播锁 private  InetAddress   group; WifiManager  wm=(WifiManager ...

  8. paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制

    源地址:http://blog.csdn.net/attilax/article/details/12343625 paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制 效果图: ...

  9. Cocos2d-x 学习(1)—— 通过Cocos Studio创建第一个Demo

    近期在工作上有了比較大的转变,自学情绪也慢慢高涨,本来一直在研究unity的技术.由于换了工作会開始接触cocos2d-x.但并不意味着停止研究unity,以后有时间还是会继续的. 公司的cocos2 ...

  10. Java设计模式---外观模式

    外观模式(Facade) 外观模式的意图是:为子系统提供一个接口,便于它的使用.   解释: 简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的接口,是设计模式中 ...