Django项目部署到Apache服务器上

之前写了把Django部署到XAMPP上,但是有bug,翻apache日志的时候发现会无法import _ssl,然后我就怒而直接装apache2了

配置方法大约和这篇文章差不多

安装必要的包

sudo apt-get update
sudo apt-get install python-pip apache2 libapache2-mod-wsgi

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

sudo a2enmod wsgi

配置Python虚拟环境

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

sudo pip install virtualenv

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

virtualenv myprojectenv

进入虚拟环境安装python包:

source myprojectenv/bin/activate

然后命令行应该会长这样:
(myprojectenv)[email protected]:~/myproject$
安装djangodjango rest_framework

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

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

修改apache配置文件/etc/apache2/sites-available/000-default.conf

  1. 修改对于Django项目的路径,这次我们使用守护进程模式,主要需要保留三行:WSGIDaemonProcessWSGIProcessGroup,和WSGIScriptAlias
    ```sh
    # 这是静态文件配置
    Alias /demos/todolist/static/ /root/web/demos/todolist/work/static/

    #Order deny,allow
    #Allow from all
    Require all granted

    <Files wsgi.py>
    Require all granted

    WSGIDaemonProcess python-home=/root/web/demos/todolist/tdlenv python-path=/root/web/demos/todolist
    WSGIProcessGroup
    WSGIScriptAlias /demos/todolist /root/web/demos/todolist/todolist/wsgi.py process-group=
    一个Django项目的结构一般是这样的:

    • ProjectName
      -- ProjectName
      ---- wsgi.py
      -- AppName
      ---- static
      ```
      注意有两个名字一样的文件夹,别搞混了
      静态文件配置:
    • 第一行为Alias <URL Path> <FILE PATH>
      <URL Path>的含义和上面一样,从此http://hostname/<URL PATH>/就是访问静态文件夹<FILE PATH>的路径
    • 第二行为<Directory <FILE PATH> >,填的还是静态文件夹的路径

修改Django的代码

  1. wsgi.py,直接用生成的
  2. setting.py
    • 为了放到生产环境上,可以把DEBUG关了,同时ALLOWED_HOST要修改一下以便外界可以访问:
      ```python
      # SECURITY WARNING: don‘t run with debug turned on in production!
      DEBUG = False

      # ALLOWED_HOSTS = [‘*‘] # 不建议写这个
      ALLOWED_HOSTS = [‘localhost‘, ‘127.0.0.1‘, ‘your ip‘, ‘your hostname‘] # 一般写这4个
      ```

    • 静态路径需要修改
      ```python
      # Static files (CSS, JavaScript, Images)
      # https://docs.djangoproject.com/en/1.11/howto/static-files/

      STATIC_URL = ‘/demos/todolist/static/‘
      ``主要是要与Alias 里的`保持一致

在prod里调试

有很多时候本地服务器上可,到了server上就有bug,但是却不知道是哪里的bug,这个时候需要打印一些必要的信息。
最简单的方式就是将信息打印到stderr,这样wsgi的log会记录在Apacheerror_log里:

import sys
print >> sys.stderr, message

如果看不到的话,把apache的日志级别调高到info即可,打印出来的log长这样:

关于Sqlite3的权限配置

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

  1. 确保Apache可以写数据库的父目录
  2. 确保数据库的完整路径上的文件夹不以数字开头
  3. 确保完整路径上没有db文件夹
  4. 确保/tmp文件夹在三个级别上都可写
  5. 确保settings.py里写的是完整路径
  6. 确保路径上没有特殊字符
  7. 在WINDOWS上,路径要写成双反斜杠

最后!!!!!!!

重启Apache!!!!!!!!
每次修改python源码也要重启!!!!!不然WSGI会用原来的代码!!

原文地址:https://www.cnblogs.com/milliele/p/11078971.html

时间: 2024-07-30 19:48:57

Django项目部署到Apache服务器上的相关文章

Django项目部署到Apache服务器

本文讲述的是在阿里云服务器(ECS)上部署Django项目于Apache,服务器操作系统为ubuntu,公网Ip地址为123.56.30.151. 将Django部署到Apache服务器的原因 Django中的runserver只是一个很简单的web服务器,启动服务器常见的方法是通过Putty执行命令.虽然调试和测试方便,然而如果关闭了Putty或者退出命令,服务就停止了,并且不能承受许多用户同时使用的负载.所以需要将Django部署到生产级的服务器,这里选择Apache. ubuntu上部署详

详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上

很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配置tomcat 1.下载并成功安装Eclipse和Tomcat 2.打开Eclipse,单击“window”菜单,选择下方的“Preferences” . 3. 点击 Add 添加Tomcat. 4. 选中自己安装的tomcat路径. 5. 选择jdk 版本. 6. 选择自己的jdk版本. 7. 点

使用java service wrapper将项目部署到linux服务器上

最近有需求是将java项目部署到linux服务器上作为服务端程序,最后经过测试成功.本着分享精神将总结出来的路子分享给大家,如果不明白的地方可以在下边留言,谢谢. 将java项目部署到linux服务器 1.      首先从官网下载http://wrapper.tanukisoftware.com/doc/english/download.jsp,注意下载的文件为Community列中的(PS:其他版本需要序列号) 2.      将写好的java项目打成jar包,待用 3.      将下载好

django 项目部署在 Apache 后, 设置二级域名

上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要用到 Apache 的虚拟主机配置. 其实Apache的虚拟主机之前也配置过,有时有效,有时又不好用,也不知道个所以然.这次我详细的写一下每一步都要怎么做: 第一步:开启Apache虚拟主机功能: Apache的虚拟主机功能,默认是关闭的.如果要使用这个功能,就要开启虚拟主机功能. 如同上文提到的A

在 eclipse 中将 web 项目部署到 tomcat 服务器上

1.在 eclipse 中,选择 Window--->Preferences--->Server--->Runtime Environments,选择 Add 按钮 2.在弹出的对话框中,选择 Tomcat 服务器的版本,然后点击 Next 3.在弹出来的对话框中,选择 tomcat 的本地路径,JRE的版本等,点击 Finish,最后点击OK 4.创建 Servers,如果找不到 Servers,则选择 Window--->Show View--->Others,然后在弹出

在Eclipse开发的项目 部署在远程服务器上的操作步骤及遇到的问题

环境:Eclipse + JDK 1.7 运行eclipse,点击windows--preferences--java--compiler--右边就可以看到当前使用的jdk版本号,如下图: 注意:这是全局的jdk版本号 特别注意:塔里木钻井平台项目 特别指定的jdk编译环境是1.7(Enable project specific settings) 远程桌面连接:输入用户名/密码 进入远程桌面机器上后,先查看是否有我们所需要的tomcat-7.0和jdk-1.7(没有的话要进行下载安装). 注意

将eclipse上的web项目部署到Tomcat服务器上经验总结

1.  将Tomcat插件添加到eclipse上 Window --> Preferences --> Server --> Runtime Environment --> Add --> Apache 选择与下载的Tomcat版本相同的一项(v6.0.v7.0.v8.0),Next选择下载的Tomcat的地址,Finish,OK! 2.  在web项目的Console处,切换到Servers选项,点击空白处,右键-->New -->Server ,选择与刚才版本

将django项目部署到centos服务器

实现环境: python3.7 windows to centos 步鄹一:先在centos上安装Django,uwsgi 步鄹二:在Django项目的setting文件中修改 DEBUG = True ALLOWED_HOSTS = ['127.0.0.1','虚拟机的ip地址','localhost'] 步鄹三: 原文地址:https://www.cnblogs.com/-hjd/p/10155263.html

给新手--安装tomcat后用户名和密码设置以及项目怎么部署在tomcat服务器上

安装后tomcat服务器后,登陆首先就是让输入用户名和密码,可是我们在安装tomcat的过程中好像没有让设置用户名和密码,这时候可能有人就抓狂了,还有的人是突然忘记了用户名和密码,对于出现这种情况该怎么去解决呢? 不慌,tomcat安装的过程中是没有让用户设置用户名和密码,因为这个工作是需要用户自己在配置文件中自己书写的.过程如下: 以我安装tomcat的目录为例  D:\Program Files\apache-tomcat-6.0.35 进入该目录找到conf文件下,找到tomcat-use