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. 大数据学习day25------spark08-----1. 读取数据库的形式创建DataFrame 2. Parquet格式的数据源 3. Orc格式的数据源 4.spark_sql整合hive 5.在IDEA中编写spark程序(用来操作hive) 6. SQL风格和DSL风格以及RDD的形式计算连续登陆三天的用户

    1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): U ...

  2. C++11的auto自动推导类型

    auto是C++11的类型推导关键字,很强大 例程看一下它的用法 #include<vector> #include<algorithm> #include<functi ...

  3. 【♪♪♪】网易云音乐mp3真实地址

    参考别人的博客,得到下面的地址,填上ID号即可,后缀的[.mp3]不用输入 http://music.163.com/song/media/outer/url?id= 例如 最终,合并地址为 http ...

  4. RestTemplate进行访问分页PageInfo

    废话少说,给你们看代码: //provide的controller @ResponseBody @RequestMapping(value = "details",method = ...

  5. 注册页面html版本

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. 【JS】枚举类型

    https://zhuanlan.zhihu.com/p/79137838 相当于用数字来代替一串字母 /** * 时间:2019年8月18日 * 前端教程: https://www.pipipi.n ...

  7. LVS配置记录

    目录: 一.NAT模式配置 二.DR模式配置 三.TUN模式配置 LVS原理及架构不再赘述. 一.NAT模式 部署环境 注意: 1) DIP.RIP必须为同网段: 2) RS网关必须指向DS: 3) ...

  8. [BUUCTF]REVERSE——[GWCTF 2019]pyre

    [GWCTF 2019]pyre 附件 步骤: 1.附件是pyc文件,用python打不开,百度后得知用python反编译工具打开,分享一个python反编译在线网站 反编译后是这段代码 #!/usr ...

  9. 关于@Autowired和@Resource注解区别

    区分一下@Autowired和@Resource两个注解的区别: 1.@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配 2.@A ...

  10. Python 代码设计模式

    责任链模式 (场景:OA系统,项目审批...) 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 适用性 ...