• nginx & flup & django & python3.x @ window7配置备忘录


             最近考虑原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:Python34Libsite-packagesdjangoin"。这样,就能够在命令行窗体下直接执行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:Python34Libsite-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: ginx)就可以。

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

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

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


    6、重定向nginx静态文件到"mysite"
          编辑"C: ginxconf ginx.conf"文件,将当中第一个"... root   html;..."更改为“root d:/mysite/html”。执行"c: ginx ginx.exe -s reload"又一次载入nginx。打开浏览器,输入“127.0.0.1”,显示“404”错误。这是由于"d:mysitehtml"文件夹及文件不存在。新建"d:mysitehtml"文件夹,并在此文件夹下新建一个"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:mysitehtml)添加页面文件"hello.html".输入您的浏览器localhost/hello.html显示静态页面内容。
    9、输入您的浏览器"localhost"显示器django欢迎页。

        
  • 相关阅读:
    SQL性能优化(Oracle)
    反射基础详解
    线程同步
    死锁产生的原因和解锁的方法
    java中的sleep()和wait()的区别
    线程Thread的基础知识学习
    cookies和session的优缺点
    js中的clientWidth offsetWidth scrollWidth等的含义
    手机端的META你知道多少?
    鼠标点击input框后里面的内容就消失
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5044288.html
Copyright © 2020-2023  润新知