Linux环境下Django App部署到XAMPP上
mod_wsgi的gitgub上下载源码安装包
解压缩:tar xvfz mod_wsgi-X.Y.tar.gz
,然后cd mod_wsgi-X.Y
进行配置:./configure --with-apxs=/opt/lampp/bin/apxs
make
,其中有两个坑:
- 找不到PERL库:
【解决方法】修改apxs文件vi /opt/lampp/bin/apxs
第一行里的!/bin/perl
改成XAMPP自己的脚本:!/opt/lampp/bin/perl
- libtool出错:

【解决方法】修改默认的sh工具为bash而不是dash,执行sudo dpkg-reconfigure dash
,弹出选择框,选择no
make install
修改apache配置文件httpd.conf
- 加载
mod_wsgi
模块:LoadModule wsgi_module modules/mod_wsgi.so
- 修改对于Django项目的路径
WSGIScriptAlias /demos/todolist /root/web/demos/todolist/todolist/wsgi.py
WSGIPythonPath /root/web/demos/todolist
Require all granted
一个Django项目的结构一般是这样的:
- ProjectName
-- ProjectName
---- wsgi.py
-- AppName
---- static
- 第一行为
WSGIScriptAlias
是你希望的这个project的根目录,http://hostname//
组成了最后访问的URL
就是wsgi.py
文件的路径,这个文件在高版本的Django里创建项目会自动生成,没有的话下载一个高版本的Django,新建一个别的项目,直接从新项目里改巴改巴拉过来即可
- 第二行为
WSGIPythonPath
为整个项目目录的路径,不包含第二个ProjectName
- 第三行为
/>
/
这部分是包含两个ProjectName
的那个路径,也就是wsgi.py
所在的文件夹的路径
- 添加静态文件路径
Alias /demos/todolist/static/ /root/web/demos/todolist/work/static/
#Order deny,allow
#Allow from all
Require all granted
- 第一行为
Alias
的含义和上面一样,从此http://hostname//
就是访问静态文件夹
的路径
- 第二行为
>
,填的还是静态文件夹的路径
- 重启Apache服务器
修改Django的代码
wsgi.py
,直接用生成的
setting.py