Linux环境下Django App部署到XAMPP上
Django App部署到XAMPP上
准备工作
首先一定要保证自己的代码在本地可以运行!
同时在服务器上把需要的库,什么数据库之类的都装好!
源码安装mod_wsgi
- 从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
- 找不到PERL库:
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 <Directory /root/web/demos/todolist/todolist>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
一个Django项目的结构一般是这样的:
- ProjectName
-- ProjectName
---- wsgi.py
-- AppName
---- static
- 第一行为
WSGIScriptAlias <URL PATH> <WSGI PATH>
<URL PATH>是你希望的这个project的根目录,http://hostname/<URL PATH>/<rules_in_urls.py>组成了最后访问的URL
<WSGI PATH>就是wsgi.py文件的路径,这个文件在高版本的Django里创建项目会自动生成,没有的话下载一个高版本的Django,新建一个别的项目,直接从新项目里改巴改巴拉过来即可 - 第二行为
WSGIPythonPath <Project Path>
<Project Path>为整个项目目录的路径,不包含第二个ProjectName - 第三行为
<Directory <Project Path>/<Project Name>>
<Project Path>/<Project Name>这部分是包含两个ProjectName的那个路径,也就是wsgi.py所在的文件夹的路径
- 第一行为
- 添加静态文件路径
Alias /demos/todolist/static/ /root/web/demos/todolist/work/static/
<Directory /root/web/demos/todolist/work/static/>
#Order deny,allow
#Allow from all
Require all granted
</Directory>
- 第一行为
Alias <URL Path> <FILE PATH>
<URL Path>的含义和上面一样,从此http://hostname/<URL PATH>/就是访问静态文件夹<FILE PATH>的路径 - 第二行为
<Directory <FILE PATH> >,填的还是静态文件夹的路径
- 第一行为
- 重启Apache服务器
修改Django的代码
wsgi.py,直接用生成的setting.py- 为了放到生产环境上,可以把DEBUG关了,同时ALLOWED_HOST要修改一下以便外界可以访问:
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False ALLOWED_HOSTS = ['*']
- 静态路径需要修改
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = '/demos/todolist/static/'
主要是要与
Alias <URL Path> <FILE PATH>里的<URL Path>保持一致
- 为了放到生产环境上,可以把DEBUG关了,同时ALLOWED_HOST要修改一下以便外界可以访问:
Linux环境下Django App部署到XAMPP上的更多相关文章
- 在Linux环境下使用Apache部署ASP.NET Core
在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...
- Linux环境下详细讲解部署MySQL5.7版本
说明: 在本人写作这篇安装MySQL文章时,虽然MySQL已经发布到8.0.17版本,但对于行业来说,主力版本依然是5.7版本.目前在Linux环境默认安装时,大部分已经默认安装到8版本了,所以本人特 ...
- linux环境下的Oracle部署
一. 环境及相关软件 虚拟机:VMwore Workstation Linux系统:CentOS ORACLE:ORACLE_112030_Linux-x86-64 Xmanger软件 二. 安装 ...
- 在Linux环境下使用Jexus部署ASP.NET Core
关于如何在Linux中添加ASP.NET Core运行时环境请参考我的上一篇文章,本文章将不再做赘述. 本文章运行环境如下: (1) 安装独立版Jexus 本教程安装的是独立版的Jexus,独立版的 ...
- linux 环境下tomcat中部署jfinal项目
tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...
- linux环境下python的部署
linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及多版本共存问题了,很多同学在安装多个版本P ...
- 如何在Linux环境下通过uwgsi部署Python服务
部署python程序时常常会遇到同一台服务器上2.x和3.x共存的情况,不同应用需要使用不用的python版本,使用virtualenv创建虚拟环境能很好地解决这一问题. 首先,需要在服务器上安装vi ...
- 虚拟机中Linux环境下使用Squid部署代理缓存服务(及透明传输)
小知识: 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低原服务器的负载. 不仅如此,还为读者们添加了对指定IP地址.网页关键词.网址与文件后缀的ACL访问限制功能的实 ...
- Linux环境下django初入
python -m pip install --upgrade pip 终端中 一. 创建项目: 1.django-admin startproject mysite(第一种比较好) 2.django ...
随机推荐
- 【leetcode】565. Array Nesting
You are given an integer array nums of length n where nums is a permutation of the numbers in the ra ...
- C++ 之杂记
今天做了一个题,代码不难,但是编译的时候就恼火,老是报错,也不告诉我错哪了.... 之前的代码是这样的,在main函数中调用这个类的构造函数,就一直报错,但是不知道原因,后来加上了const 就好了. ...
- Stream collect Collectors 常用详细实例
返回List集合: toList() 用于将元素累积到List集合中.它将创建一个新List集合(不会更改当前集合). List<Integer> integers = Arrays.as ...
- ACE_Message_Block实现浅析
ACE_Message_Block实现浅析1. 概述ACE_Message_Block是ACE中很重要的一个类,和ACE框架中的重要模式的实现 如ACE_Reactor, ACE_Proactor, ...
- js实现递归菜单无限层
/*动态加载菜单*/ function dynamicMenu(data){ if (userID != "admin"){ //1.清空所有菜单 $("#menuLis ...
- 【Python】【Module】os
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...
- 【Linux】【Shell】【text】sed
sed [OPTION]... 'script' [input-file] ... script: 地址定界编辑命令 ...
- Vue中如何书写js来渲染页面填充数据的部分代码
new Vue({ el:"#app" , data:{ user:{ id:"", username:"", password:" ...
- Django auth
auth是django一个自带的用户验证系统,使用它可以减少我们的开发流程. 基本使用 大体流程: 自定义类 from django.contrib.auth.models import Abstra ...
- 【C/C++】例题3-5 生成元/算法竞赛入门经典/数组与字符串
[题目] x+x的各位数之和为y,x为y的生成元. 求10万以内的n的最小生成元,无解输出0. [解答] 这是我根据自己的想法最初写的代码: #include<cstdio> #inclu ...