部署Django项目

最近做了个python web项目,用的是Django框架,搭配的软件都有uWSGI + Nginx + Django+supervisor+virtualenv

一、用virtualenv来配置python的虚拟环境。

tips:为什么要用虚拟环境?

首先python有很多个发行版,我这个项目用的是python3.4,但我系统上有2.7,3.4,3.5这三个版本,我为了隔绝与系统环境的关联,而且开了虚拟环境之后,搜所有的python指令都默认会指向虚拟环境的python版本,所以说,一个项目建一个虚拟环境,在导出需求包的时候也非常方便。

关于virtualenv的搭建与安装使用:http://www.cnblogs.com/technologylife/p/6635631.html

二、测试运行Django项目

找到你的manage.py文件,这个是在你创建Django项目时系统自动创建的一个文件。

然后运行:

	
python manage.py runserver 0.0.0.0:8000

打开你的浏览器,网址输ip:8000。如果运行正常,说明这个项目的环境配置已经完成了。

三、安装配置nginx

apt-get install nginx  #安装
/etc/init.d/nginx start         #启动
/etc/init.d/nginx stop          #停止
/etc/init.d/nginx restart       #重启
配置nginx:

nginx的默认端口是80端口,如果你的80端口被占用了,你可以修改默认端口,在 /etc/nginx/sites-enabled/*,或者重新写配置文件

重新写配置文件:

在 /etc/nginx/conf.d/目录下创建 .conf 文件,nginx会在启动时自动读取这个文件,重写之后记得在/etc/nginx/nginx.conf这个文件里把include /etc/nginx/sites-enabled/*这句话给注释掉

给一个配置文件的例子


upstream django {
    # 有两种选择,根据 uWSGI 中配置而定
    # server 127.0.0.1:18001;
    server unix:///tmp/mysite.sock;
}
server {
        listen   18090;
        charset utf-8;
        
        # 认证日志
	     
	     access_log /usr/local/var/log/nginx/exam_access_log;
	     
	     # 错误日志
 	     
 	     error_log /usr/local/var/log/nginx/exam_error_log;
 	     
 	     location /static {
     	           # 静态文件链接地址
                alias /your/web/path/static/;
        }
        location / {
                include uwsgi_params;
                uwsgi_pass django;
        }
}

这样的话就可以用浏览器访问静态文件,listen是端口号。


四、安装配置uwsgi


sudo apt-get install nginx uwsgi uwsgi-plugin-python

可以使用 uwsgi –version 查看 uwsgi 版本,如果版本过低则


$ pip install -U uwsgi
$ cd /usr/bin
$ mv uwsgi uwsgi-old
$ ln -s /usr/local/bin/uwsgi uwsgi
为了测试可以先生成一个测试文件 test.py

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    #return ["Hello World"] # python2
    return [b"Hello World"] # python3
然后测试一下,端口自定

uwsgi --http :8000 --wsgi-file test.py

用浏览器打开后能够看到“hello world”则说明正常运行

然后写配置文件,包括程序运行的命令,运行环境,线程数等


给一个配置文件的例子mysite.ini

[uwsgi]
# 项目目录
chdir=/Users/hourong/PycharmProjects/examination
# 从文件夹中找 /your/project/wsgi.py 中的 application
module=examination.wsgi:application
# 设置环境
env=DJANGO_SETTINGS_MODULE=examination.settings
# pid 文件地址
pidfile=/tmp/project-master.pid
# 开放的端口( http, tcp, unix socket )
# http=127.0.0.1:49152
# socket=127.0.0.1:18001
socket=/tmp/mysite.sock
# unix socket 需要指定文件的
chmod-socket=664
# 用于添加 virtualenv 的地址
home=/Users/hourong/venv/examnation
# 当前进程数
processes=1
# 允许多线程
enable-threads=True

运行程序的时候只要执行

uwsgi --ini mysite.ini

五、程序运行起来如果正常,那么恭喜你,所有配置就都完成了。当然这个服务器可能并不稳定,有可能会挂掉,为了防止这种风险,我们用supervisor来守护进程,万一这个进程挂掉了,supervisor会再把它拉起来。具体配置见http://blog.csdn.net/xyang81/article/details/51555473


以后就只用监控supervisor的运行状态就好了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在phpstudy上部署Django项目,需要遵循以下步骤: 1. 安装Python和Django:在phpstudy的“软件管理”中安装Python和Django,或者手动下载并安装它们。 2. 创建Django项目:使用Django的命令行工具创建一个新的Django项目。 3. 配置Django项目:在Django项目中设置数据库、静态文件路径和其他配置。 4. 启动Django开发服务器:在Django项目的根目录中运行Django的开发服务器,以便在本地测试应用程序。 5. 配置phpstudy:在phpstudy中创建一个新的虚拟主机,并将其指向Django项目的根目录。 6. 启动phpstudy:启动phpstudy,并在浏览器中访问新的虚拟主机地址,以查看Django应用程序。 注意事项: 1. phpstudy默认使用Apache服务器,而Django使用的是Python内置的服务器。因此,在部署Django项目时,需要在phpstudy中创建一个新的虚拟主机,并将其指向Django项目的根目录,以便在phpstudy中访问Django应用程序。 2. 在生产环境中,建议使用其他Web服务器,如Nginx或Apache,来部署Django项目。在这种情况下,需要将服务器配置文件中的请求转发到Django应用程序。 3. 在部署Django项目时,需要注意安全性和性能方面的问题,如防止SQL注入、保护敏感数据等。可以使用Django的安全设置和中间件来增强应用程序的安全性。同时,可以使用缓存、异步任务等技术来提高应用程序的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值