在Apache上部署Django

跟php类似,要想使Apache能够处理python脚本(实际上Apache是不能处理脚本的,只是利用别的扩展模块处理相应脚本),就要给Apache安装相应的扩展模块。

Apache起初的python扩展是mod_python.so这个模块,但后来由于不在更新维护,所以大多使用mod_wsgi.so这个模块了。

另:wsgi是python专有的,定义了服务器与python解释器之间交流沟通的方式的协议。

部署第一步:给Apache安装mod_wsgi模块拓展

sudo apt-get install libapache2-mod-wsgi

安装完成后,会自动帮你把apache必要的软连接什么的都设置好。(即无需在手动写一个LoadModule mod_wsgi之类的东西了)

(libapache2有n多的模块,应该都可以这么安装,不用一个个手动网上下载了)

部署第二步:给apache一个配置文件,指定根目录,并说明请求交给谁处理:

第一行WSGIScriptAlias 指明:只要是访问网站根目录 / ,都交给 /home/lisong/lisongsite/django.wsgi 处理。(另外说明:我的项目在/home/lisong/lisongsite)

第二行至以后,就是普通的apache赋予目录访问权限的事儿了。

部署第三步:给Django一个请求接收文件,接收从apache给过来的请求,并分发给相应的URL去处理。

此脚本大体分两部分:

第一部分,把项目路径、项目下的应用路径添加到path中。其实第一部分和第二部分都是一个目的,为了让django能找到相应的项目路径、脚本等等。

第二部分,指明DJANGO_SETTING_MODULE的路径,这样可以使请求进来之后,根据这个路径去寻找设置并做相应分发处理。项目所有的设置都在settings这个地方呢。

最后,重启apache,浏览器访问机器IP就可以了。

如果有问题,例如报500错什么的,可以看看apache错误日志,挺好用的。/var/log/apache2/error.log

时间: 2024-10-13 06:26:05

在Apache上部署Django的相关文章

apache上部署django的静态文件

一直在优化自己博客的代码, 昨天把css样式表分离出来, 用作静态 文件, 但是自己还没学django怎么使用静态文件, 经过一番google 终于解决了. django 使用静态文件有两种方法, 一种就是部署在django上, 另外一种 是部署在apache 上, 前一种方法有一定的缺陷, 效率不高, 而且会造 成一定的安全威胁, 具体我也不知道, 大家可以看官方文档, 但是还是 向大家介绍一下. 可以在你的项目下建一个static目录, 在settings.py 中添加: #填写你静态文件的

Apache上部署Django

1. 安装apache sudo apt-get install apache2如果之前安装配置过apache2的并且配置很乱,无法修复,建议还是完全卸载之后在安装.完全卸载的命令:sudo apt-get --purge remove apache-commonsudo apt-get --purge remove apache* apache2相关的操作:启动:sudo service apache2 start停止:sudo service apache2 stop重启:sudo serv

如何一步步在生产环境上部署django和vue

本文由云+社区发表 本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR----表示django的工程根目录 DJANGO_NAME----表示django的工程名称 VUE_HTML_DIR----表示vue编译好的index.html路径 VUE_STATIC_DIR----表示vue编译好的静态文件夹static的路径 整体框架 一个常用的web框架图如下图所示 框架

apache mod_wsgi 部署django项目后连接不上mysql

问题描述 做好的django项目,使用python manage.py runserver 可以正常work. 然而当将项目使用mod_wsgi部署到apache上之后却不能连接mysql.一直报错:"Internal Server Error",查看日志信息,除了"Can't connect mysql"还是连不上mysql. 追踪问题 django测试 分别在debug模式以及debug off模式下运行项目,无任何异常,足以证明项目自身配置没任何错误. Pyt

Apache下部署Django日志时区显示不正确的问题

django 1.5的settings.py 里面默认的时区设置与1.8的默认不一样 1.8下默认TIME_ZONE = 'UTC' 如果部署到Apache上,access.log下时间如 [23/Jun/2017:04:15:05 +0000] 那么与本地时区不一致, 改成TIME_ZONE = 'Asin/Shanghai' 日志显示东八区的时间 24/Jun/2017:11:47:40 +0800

基于nginx和uWSGI在Ubuntu系统上部署Django项目

1. nginx1.1 安装sudo apt-get install nginx1.2启动.停止和重启sudo /etc/init.d/nginx startsudo /etc/init.d/nginx stopsudo /etc/init.d/nginx restart或者sudo service nginx startsudo service nginx stopsudo service nginx restart2. uWSGI安装用python的pip安装最简单:apt-get inst

全站之路一路坑(2)——在Apache下部署django博客

上一篇博客:全栈之路一路坑之使用django开发博客 开发完博客之后,很多后续应用需要博客部署之后才可以使用,这篇文章就来尝试一下将开发好的博客部署到服务器上. 开发阶段,一直使用的是virtualenv和python manage.py runserver,但需要部署到服务器上时就有些不合适了,所以我尝试把它部署到Apache里. 查阅了相关资料发现部署方法有两种,一种是python_mod,另一种是wsgi,资料上说后者更加稳定一点,所以我选择使用wsgi进行集成. 安装httpd-deve

在PythonAnyWhere上部署Django项目

http://www.jianshu.com/p/91047e3a4ee9 将项目放到git上,然后将pathonanywhere上的ssh传到git上,没有的话先创建,然后从git上把项目拷贝到pathonanywhere的根目录下/home/xqnq2007下 1 创建虚拟环境, mkvirtualenv rango将各种包安装在虚拟环境中,这样会避免出现某些权限不足的问题 2 配置Virtualenv 将对应的文件路径写正确 创建web app成功后,在Web标签页面会出现你创建的web

CentOS上部署Django

第一步:安装python3 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz 解压配置安装 tar xvzf Python-3.6.1.tgz ./configure --prefix=/usr/python3makemake install 预先安装编译所需要的库