Django App部署到XAMPP上

准备工作

首先一定要保证自己的代码在本地可以运行!

同时在服务器上把需要的库,什么数据库之类的都装好!

源码安装mod_wsgi

  1. mod_wsgi的gitgub上下载源码安装包
  2. 解压缩:tar xvfz mod_wsgi-X.Y.tar.gz,然后cd mod_wsgi-X.Y
  3. 进行配置:./configure --with-apxs=/opt/lampp/bin/apxs
  4. make,其中有两个坑:
    • 找不到PERL库

      【解决方法】修改apxs文件vi /opt/lampp/bin/apxs第一行里的!/bin/perl改成XAMPP自己的脚本:!/opt/lampp/bin/perl
    • libtool出错



      【解决方法】修改默认的sh工具为bash而不是dash,执行sudo dpkg-reconfigure dash,弹出选择框,选择no
  5. make install

修改apache配置文件httpd.conf

  1. 加载mod_wsgi模块:LoadModule wsgi_module modules/mod_wsgi.so
  2. 修改对于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所在的文件夹的路径
  3. 添加静态文件路径
    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> >,填的还是静态文件夹的路径
  4. 重启Apache服务器

修改Django的代码

  1. wsgi.py,直接用生成的
  2. 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>保持一致

Linux环境下Django App部署到XAMPP上的更多相关文章

  1. 在Linux环境下使用Apache部署ASP.NET Core

    在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...

  2. Linux环境下详细讲解部署MySQL5.7版本

    说明: 在本人写作这篇安装MySQL文章时,虽然MySQL已经发布到8.0.17版本,但对于行业来说,主力版本依然是5.7版本.目前在Linux环境默认安装时,大部分已经默认安装到8版本了,所以本人特 ...

  3. linux环境下的Oracle部署

    一.  环境及相关软件 虚拟机:VMwore Workstation Linux系统:CentOS ORACLE:ORACLE_112030_Linux-x86-64 Xmanger软件 二.  安装 ...

  4. 在Linux环境下使用Jexus部署ASP.NET Core

    关于如何在Linux中添加ASP.NET Core运行时环境请参考我的上一篇文章,本文章将不再做赘述. 本文章运行环境如下:  (1) 安装独立版Jexus 本教程安装的是独立版的Jexus,独立版的 ...

  5. linux 环境下tomcat中部署jfinal项目

    tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...

  6. linux环境下python的部署

    linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及多版本共存问题了,很多同学在安装多个版本P ...

  7. 如何在Linux环境下通过uwgsi部署Python服务

    部署python程序时常常会遇到同一台服务器上2.x和3.x共存的情况,不同应用需要使用不用的python版本,使用virtualenv创建虚拟环境能很好地解决这一问题. 首先,需要在服务器上安装vi ...

  8. 虚拟机中Linux环境下使用Squid部署代理缓存服务(及透明传输)

    小知识: 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低原服务器的负载. 不仅如此,还为读者们添加了对指定IP地址.网页关键词.网址与文件后缀的ACL访问限制功能的实 ...

  9. Linux环境下django初入

    python -m pip install --upgrade pip 终端中 一. 创建项目: 1.django-admin startproject mysite(第一种比较好) 2.django ...

随机推荐

  1. linux 内存变量的分布

    我们知道,linux通过虚拟内存管理进程的内存(进程的地址空间),而进程的地址空间分布如下 : 从进程的空间中可以看出,内存中的变量有的来自可执行elf文件,在elf文件中已经分配好存储空间,有的是在 ...

  2. npm下载错误解决办法

    解决办法:删除npmrc文件. 使用镜像 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在):1.通过config命令12npm config set re ...

  3. [web安全] 利用pearcmd.php从LFI到getshell

    有一段时间没写blog了,主要是事多,加上学的有些迷茫,所以内耗比较大.害,沉下心好好学吧. 漏洞利用背景: 允许文件包含,但session等各种文件包含都已经被过滤了.ctf题中可以关注regist ...

  4. SqlSession与SqlSessionFactory到底是什么关系?

    1. SqlSession和SqlSessionFactory的接口定义 SqlSession: public interface SqlSession extends Closeable {     ...

  5. Android Bitmap 全面解析(一)加载大尺寸图片

    压缩原因:1.imageview大小如果是200*300那么加载个2000*3000的图片到内存中显然是浪费可耻滴行为;2.最重要的是图片过大时直接加载原图会造成OOM异常(out of memory ...

  6. Spring Boot项目的不同启动方式

    方式一: 直接通过IntelliJ IDEA启动,直接执行Spring Boot项目的main()方法. 方法二: 将项目打包成jar包,首先需要在pom.xml文件的根节点下添加如下配置: < ...

  7. freeswitch APR库线程读写锁

    概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性. 线程读写锁在多线程服务中有重要的作用.对于读数据比写数据频繁的服务,用读写锁代替互斥锁可以提高效率. 由于A ...

  8. 1、学习算法和刷题的框架思维——Go版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  9. LuoguP7094 [yLOI2020] 金陵谣 题解

    Content 有 \(t\) 组询问,每组询问给定四个整数 \(a,b,c,d\),请求出满足 \[\dfrac{a}{x}+\dfrac{b}{c}=\dfrac{d}{y} \] 的正整数对 \ ...

  10. Linux中磁盘管理与三剑客之awk初识

    昨日内容回顾 1.用两种方法实现 将文件中以 # 开头的行 把 # 去掉 sed -r 's/^ *#//g' /etc/fstab cat /etc/fstab | tr -d '^#' 2.将文件 ...