django 部署在 apache2 上面
How to use Django with Apache and mod_wsgi
一、编译安装 mod_wsgi
源代码下载(github)
编译步骤文档
Installation Issues 文档
为了编译安装 mod_wsgi 我们需要安装python完全版(即包括python头文件)。但是在很多linux发行版中,python运行时和python开发包是分开的,而且python开发包默认不安装。
这就导致在编译的时候,可能会产生丢失头文件的错误,像下面这样的报错:
mod_wsgi.c:113:20: error: Python.h: No such file or directory
mod_wsgi.c:114:21: error: compile.h: No such file or directory
mod_wsgi.c:115:18: error: node.h: No such file or directory
mod_wsgi.c:116:20: error: osdefs.h: No such file or directory
mod_wsgi.c:119:2: error: #error Sorry, mod_wsgi requires at least Python 2.3.0.
mod_wsgi.c:123:2: error: #error Sorry, mod_wsgi requires that Python supporting thread.
为了解决这个问题,我们需要安装Python开发包,一般为你linux系统上python运行时的包名加上-dev结尾,比如:python3-dev
二、安装django,创建项目
先在终端中使用venv创建一个虚拟环境。
python -m venv v-test
然后使用pip安装django
pip install django
接着使用django-admin创建新项目
django-admin startproject showInfo
对项目进行设置并创建一个应用
python manage.py migrate
python manage.py startapp blog
...
三、配置/conf/http.conf
如果你还没有安装,参考:ubuntu 编译安装 apache2.4.46
ubuntu 使用 apt 安装 apache2
在conf/httpd.conf中添加以下配置:
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonHome /path/to/venv
WSGIPythonPath /path/to/mysite.com
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias 指向你项目的wsgi文件
WSGIPythonHome 指向你的venv虚拟环境
WSGIPythonPath 指向你虚拟环境下的项目根目录
<Directory /path/to/mysite.com/mysite> 指向你虚拟环境下项目根目录下的项目同名目录
配置例图:
访问相应路径即可查看:
如果访问显示500错误,多半是你配置有问题,
如果访问显示403权限错误,则在conf/httpd.conf中将 Require All denied 改为 Require All granted即可。
有了计划记得推动,不要原地踏步。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)