nginx下php和python,LEMP(PHP)下安装django(Ubuntu14.04+Nginx+PHP+Python+Django)

诸如WordPress,Typecho都是基于PHP的,即LEMP框架。最近折腾服务器上跑Python web服务,就总结了一些安装步骤。

因为PHP用到的是fastCGI,所以在Django也使用fastCGI,不过这里还需要flup,flup是一个用python写的web server,也就是CGI中所谓的Server/Gateway,它负责接受Nginx转发的请求,并调用你写的程序 (application),并将application处理的结果返回到Nginx。

Ubuntu自带了Python,可以这样查看Python版本:

python --version

得到如下:

Python 2.7.6

接下来安装pip:

sudo apt-get install python-pip

用pip安装Django:

pip install Django==1.8.1

查看Django是否正确安装:

进入Python:

python

在Python中输入:

import django

print django.get_version()

得到:

1.8.1

创建一个Django项目:

这里实际上可以在服务器上任意自己想要的目录,不过我放在/usr/share/nginx/html/test下

cd到想要的目录,然后创建:

django-admin startproject mysite # mysite即项目名,可自己修改

安装flup:

sudo apt-get install python-flup

修改Nginx配置文件:

Nginx配置文件路径为:/etc/nginx/sites-available/default

在文件中新加入一个server,如下:

文件修改保存后退出。

启动flup:

将当前目录cd切换到Django项目下(即有manage.py的那层),执行:

python manage.py runfcgi method=threaded host=0.0.0.0 port=8051

注意这里端口号要和Nginx配置文件中相同

然后重启Nginx:

service nginx restart

接下来在浏览器中输入上面Nginx配置文件中的server_name就能看到Django的“It worked!”界面了,这样Django就算安装完成了。

需要注意的几点:Python版本问题,如果在Ubuntu中安装多个版本的Python一定要注意依赖包的问题,有可能pip install成功了但Python中无法import,所以这里我直接用的系统自带的。

Nginx配置文件中实际fastcgi_pass才是最重要的,我的test目录下有index.html,但访问test.polarxiong.com时仍然直接跳转到Django,说明Nginx首先会把请求交给fastcgi_pass,再由flup传至指定的Django项目。所以Django项目的实际路径也是可以自定义的。

flup运行后,即

python manage.py runfcgi method=threaded host=0.0.0.0 port=8051

执行后需要重启Nginx才能实现访问Django,所以在服务器重启后也要重复上述步骤。注意到执行

python manage.py runfcgi method=threaded host=0.0.0.0 port=8051

后会出现警告:

Warning: FastCGI support has been deprecated and will be removed in Django 1.9

这个因为现在用的还是1.8.1所以暂时不考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值