Windows下Nginx+django+flup+sqlite应用程序的部署
在开发时,可以使用django自带的服务器(manage.py runserver),但是如果要想让应用程序运行在服务器下,则需要通过fastcgi的方式来和服务器进行通信,本文所使用的fastcgi是flup,服务器是nginx,数据库为sqlite。以下步骤的前提是电脑上已经安装Python2.7。
1、 下载nginx
在nginx官网http://nginx.org/,依据操作系统的不同,下载适用于自己的版本,解压完成后,运行nginx.exe,在浏览器地址栏输入127.0.0.1,如果出现欢迎画面,则nginx安装成功。
2、 安装django
在django官网https://www.djangoproject.com/download/,下载适用于自己的版本,下载完成后,解压到目录,在cmd命令行进入到此目录,输入python setup.py install,或者使用pip install Django==1.5.2来在线进行安装。
3、 安装Python包管理工具pip
在线安装:
下载,https://raw.github.com/pypa/pip/master/contrib/get-pip.py,通过cmd命令进入到相应目录,输入python get-pip.py,进行pip的安装
(离线安装没有安装成功,原因不明)
4、 安装flup
pip install flup
5、 依据django官网,进行mysite站点的建设
依据官网https://docs.djangoproject.com/en/1.5/intro/tutorial01/指导,来进行mysite站点的编写。
6、 在nginx下进行mysite的部署
在CMD命令窗口切换到mysite的根目录,输入python manage.py runfcgi method=threaded host=127.0.0.1 port=8051,其中,host用来指明应用程序所在服务器的ip地址,port用来指明端口号。
然后修改nginx的nginx.conf
在38行增加
root E:/MyLearnProject/Python/mysite;//此路径要依据自己项目的路径进行修改,此行也可注释掉
index index.html index.htm;
在56行的location处增加:
# 指定 fastcgi 的主机和端口
fastcgi_pass 127.0.0.1:8051;
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_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
其他默认就可以
启动nginx,在浏览器输入127.0.0.1,则可以访问成功。
如果在访问过程中出现,databaseerror no such table polls_poll,则修改项目目录下setting.py里的DATABASES的sqlite的name为绝对路径,则解决此问题