这篇文章主要介绍了将本地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上,路径要写成双反斜杠