Linux环境下Django App部署到XAMPP上

 

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出错
      1
      【解决方法】修改默认的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>保持一致
posted @ 2019-05-29 22:38  milliele  阅读(470)  评论(0编辑  收藏  举报