将本地django项目上传到apache的方法

  介绍

这篇文章主要介绍了将本地django项目上传到apache的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

django部署到apache上,步骤如下

<强>安装必要的包

sudo  apt-get 更新   sudo  apt-get  install  python-pip  apache2  libapache2-mod-wsgi

然后还要保证WSGI模块在运行:

sudo  a2enmod  WSGI

<强>配置Python虚拟环境

为了不要修改系统Python,事实上我怀疑系统Python和xampp的库对不上有可能这样可以解决

安装工具:

sudo  pip  install  virtualenv

进入我们的项目目录,新建环境:

virtualenv  myprojectenv

进入虚拟环境安装Python包:

source  myprojectenv/bin/激活

然后命令行应该会长这样:

(myprojectenv) user@host: ~/myproject $

安装django和django rest_framework

pip  install  django==1.8   pip  install  djangorestframework==3.6.4

注意:django2开始就不支持python2了,所以要安装低级一点的,但是如果djangorestframework不安装低级一点的话会有匹配不上的

<强>修改apache配置文件/etc/输入/网站/000 -违约。参看

修改对于Django项目的路径,这次我们使用守护进程模式,主要需要保留三行:WSGIDaemonProcess, WSGIProcessGroup,和WSGIScriptAlias

“sh   #,这是静态文件配置   Alias /演示/基于网络/静态/,/根/web/演示/基于网络/工作/静态/# Order 否认,允许   # Allow 得到   Require  all 理所当然   & lt; Files  wsgi.py>   Require  all 理所当然   WSGIDaemonProcess  python-home=/根/web/演示/基于网络/tdlenv  python路径=/根/web/演示/基于网络   WSGIProcessGroup    WSGIScriptAlias /演示/todolist /根/web/演示/基于网络/基于网络/wsgi.py 过程组=一个Django项目的结构一般是这样的:   ProjectName   ——,ProjectName   - - - - - wsgi.py   ——,浏览器名称   - - - - -,静态的   ' ' '

注意有两个名字一样的文件夹,别搞混了

<强>静态文件配置:

第一行为别名& lt; URL Path>& lt;文件PATH>

& lt; URL PATH>的含义和上面一样,从http://hostname/<此URL PATH>/就是访问静态文件夹& lt;文件PATH>的路径

第二行为& lt;目录& lt;文件PATH>祝辞,填的还是静态文件夹的路径

<强>修改Django的代码

wsgi.py,直接用生成的

设置。py

为了放到生产环境上,可以把调试关了,同时ALLOWED_HOST要修改一下以便外界可以访问:

“python   警告:#,SECURITY 不要# 39;t  run  with  debug  turned 提醒拷贝生产!   DEBUG =False=#,ALLOWED_HOSTS [& # 39; * & # 39;], #,不建议写这个   ALLOWED_HOSTS =, (& # 39; localhost # 39;,, & # 39; 127.0.0.1 # 39;,, & # 39; your  ip # 39;,, & # 39; your 主机名# 39;],#,一般写这4个   ' ' '

静态路径需要修改

““python   #,Static  files  (CSS, JavaScript,图片)   #,https://docs.djangoproject.com/en/1.11/howto/static-files/时间=STATIC_URL  & # 39;/演示/基于网络/静态/& # 39;   “主要是要与Alias 里的“保持一致

<强>在刺激里调试

有很多时候本地服务器上可,到服务器上了就有错误,但是却不知道是哪里的虫子,这个时候需要打印一些必要的信息。

最简单的方式就是将信息打印到stderr,这样wsgi的日志会记录在Apache的error_log里:

import  sysprint    祝辞祝辞,sys.stderr,消息

<强>关于Sqlite3的权限配置

这个问题下有比较全的情况,翻译过来如下,对db。sqlite3数据库来说:

确保Apache可以写数据库的父目录   确保数据库的完整路径上的文件夹不以数字开的头   确保完整路径上没有db文件夹   确保/tmp文件夹在三个级别上都可写   确保settings.py里写的是完整路径   确保路径上没有特殊字符

在WINDOWS上,路径要写成双反斜杠

将本地django项目上传到apache的方法