django中的runserver只是一个很简单的web服务器,在开发中是不建议使用的,django在官方中建议是使用apache2等web服务器来配置,并且django会把静态文件交由apache2等来处理,django认为这是一种高效的方法。其中最难理解的就是static files的配置,这里简单说一下。

我是在阿里云上的配置的服务器,系统是ubuntu16。

1 首先安装apache2

sudo apt-get install apache2sudo apt-get install libapache2-mod-wsgi# 如果是Python 3,则将第二行替换为改行
sudo apt-get install libapache2-mod-wsgi-py3

2 然后执行命令

sudo a2enmod wsgi

(很多博客里都没说到这一步,导致在启动apache时,会提示Invalid Command WSGIScript)

(ubuntu的apache的配置文件在/etc/apache2下面)

3 这里我的工程是在/home/blog下面。首先新建一个配置文件

sudo vi /etc/apache2/sites-available/blog.conf

然后输入下面内容

<VirtualHost *:80>ServerName www.wanghui.comServerAlias wanghui.comServerAdmin wzxwhd@126.comAlias /media/ /home/blog/media/Alias /static/ /home/blog/static/<Directory /home/blog/media>Require all granted</Directory><Directory /home/blog/static>Require all granted</Directory>WSGIScriptAlias / /home/blog/blog/wsgi.py<Directory /home/blog/blog><Files wsgi.py>Require all granted</Files></Directory>
</VirtualHost>

(在这里就要注意了:静态文件的处理。在开发过程中,一般静态文件都是放在app下面的static里,当settings.py中的Debug=True时,此时django会自己处理静态文件,但是当在部署阶段时,你需要在settings.py中加入:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

然后执行

sudo  python managy.py  collectstatic

这样django会自动把你的静态文件拷贝到项目根目录下的static文件夹里,并且你也无需担心你的html路径问题。

保存退出,然后

sudo vim /etc/apach2/envars

将文件中的APACHE_RUN_USER 和 APACHE_RUN_GROUP改为合适的用户名和组,这里不还,后面的静态文件会有权限问题的!!

紧接着修改wsgi文件,/homg/blog/blog/wsig.py

import os
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import sys
sys.path.insert(0,PROJECT_DIR) 

这一步主要是为了让apache知道你项目的位置。

4 设置目录权限

一般目录权限设置为 755,文件权限设置为 644

项目位置在 /home/blog

cd /home/
sudo chmod -R 644 blog
sudo find blog -type d -exec chmod 755 {} \;

5 启动服务

sudo a2ensite blog

这样就ok了

转载于:https://www.cnblogs.com/wzxwhd/p/6290784.html

apache2部署django以及静态文件相关推荐

  1. django处理静态文件

    静态文件指的是js css 还有图片这些,配置方法如下 1. 在设置文件(settings.py)中,installed_apps中添加 django.contrib.staticfiles 然后设置 ...

  2. django 中静态文件项目加载问题

    问题描述: django项目中创建了多个app后,每个app中都有对应的static静态文件.整个项目运行时这些静态文件的加载就是一个问题,因为整个项目我只参与了一部分,项目部署之类的并没有参与.我写 ...

  3. Django之静态文件

    在介绍分布式路由之前,先介绍下静态文件,比如图片,音视频文件,这些都属于静态文件.以百度首页为例: 大部分都是静态文件,以图片为例,浏览器加载img标签,解读里面的src属性,对src里面的地址发ht ...

  4. Django之静态文件配置

    静态文件 了解静态文件配置之前,我们需要知道静态文件是什么? 静态文件其实指的是像css,js,img等一些被模板需要的文件. 如何在Django中配置我们的静态文件 1.建立static文件夹,将静 ...

  5. Django:静态文件staticfiles

    https://docs.djangoproject.com/zh-hans/3.2/howto/static-files/ 静态文件不走视图 1.settings.py里的STATIC_URL='/ ...

  6. Django(静态文件和Django应用和分布式路由)

    什么是静态文件 如:图片.css.js.音频.视频 静态文件配置 --settings.py中 1.配置静态文件的访问路径[该配置默认存在] STATIC_URL = '/static' 指定访问静态 ...

  7. django之静态文件及数据库

    <Django Web框架> 文章目录 <Django Web框架> 静态文件 Django中的应用 - app 创建应用app 应用的分布式路由 include 函数 数据库 ...

  8. Django的静态文件的配置

    静态文件配置 STATIC_URL = '/static/' # 静态文件配置 STATICFILES_DIRS = [os.path.join(BASE_DIR,'static') ] # 暴露给外 ...

  9. Django的静态文件路径设置对比

    实验结构为: ├── mysite │ ├── manage.py │ ├── mysite │ │ ├── asgi.py │ │ ├── __init__.py │ │ ├── __pycache ...

最新文章

  1. boost::hana::value用法的测试程序
  2. DCMTK:查询/检索服务类用户(C-FIND操作)
  3. 07.suggester简述
  4. 链表相关的算法题大汇总 — 数据结构之链表奇思妙想
  5. 中医移动医疗_中医之极简移动医疗
  6. Web框架——Flask系列之abort函数与自定义异常处理(十三)
  7. python中模块、函数与各个模块之间的调用
  8. 为什么要挖Chia币
  9. 测试用例设计方法————正交表法
  10. 高中 信息科技 计算机网络 课件,高中信息技术计算机网络.ppt课件.ppt.ppt
  11. iphone的照片如何同步到mac
  12. 考研作息时间安排表(19通信考研党)
  13. 河南省周口市安吉软件测试培训中心第一次软件测试课程——软件测试期末考试(含答案)
  14. 机器学习实战案例—验证码(CAPTCHA)识别基于Logistic
  15. 校园网免认证利用IPV6轻松绕过校园WiFi网关
  16. 2022年全国职业院校技能大赛(高职组)
  17. java中去字符串中的(全角)空格
  18. python魔方方法__add__、__mul__、__sub__、__truediv__
  19. 硅芯思见:“软约束”到底有多“软”
  20. 服务之星网络评选视频投票小程序如何进行视频投票免费公众号投票

热门文章

  1. 纹理对象的实时姿态估计
  2. 温州人集体大溃败,值得所有中国人警示!
  3. 图像检索:几类基于内容的图像分类技术
  4. 使用kubeadm 安装 kuberntes 1.13.3
  5. [LeetCode]ZigZag Conversion
  6. Mac下一台电脑管理多个SSH KEY(转)
  7. mysql 获取自增id的值的方法
  8. FastReport分页和空行填充
  9. 使用Excel 通过 ODBC 连接到 MySQL 数据库
  10. 【译】使用这些 CSS 属性选择器来提高前端开发效率!