部署 日常记事 03——django+apache2+debian 部署网站服务器

UxieKong · 2018年03月23日 · 最后由 es6china 回复于 2018年03月23日 · 344 次阅读

debian + apache2 + django 部署网站服务器

  • 系统环境 debian 9.04
  • python版本 3.5.3
  • django版本 1.8
  • apache2版本 2.5.4
  1. sudo apt update
  2. sudo apt upgrade
  3. sudo apt-get install python3-pip
  4. sudo apt-get install apache2 #安装apache2
  5. sudo apt-get install libapache2-mod-wsgi-py3 #安装python3的libapache2-mod-wsgi #若使用python2则无需加-py3
  6. cd /etc/apache2/sites-enabled/ cp 000-default.conf /etc/apache2/sites-available/001-default.conf #复制000-default.conf到001-default.conf
  7. vim /etc/apache2/sites-available/001-default.conf #更改conf信息
#设置访问的域名
ServerAdmin www.example.com
#设置项目目录
DocumentRoot /var/www/mysite
# 存放用户上传图片等文件的位置
Alias /media/ /var/www/mysite/media/
# 静态文件(js/css/images)的存放位置
Alias /static/ /var/www/mysite/static/
# 允许通过网络获取static的内容
<Directory /var/www/mysite/static/>
    Require all granted
</Directory>
# 最重要的!通过wsgi.py让Apache识别这是一个Django工程,别漏掉前边的 /
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
# wsgi.py文件的父级目录
<Directory /var/www/mysite/mysite/>
    <Files wsgi.py>
       Require all granted
    </Files>
</Directory>

8.vim /etc/apache2/mods-enabled/wsgi.load 在mod_wsgi.so后面加上-3.5(3.5为python版本) python2则不需要更改

9.vim /etc/apache2/mods-enabled/wsgi.conf 加上添加一行 WSGIPythonPath /var/www/mysite #项目所在路径

10.更改wsgi.py

import os,sys
from os.path import join,dirname,abspath
from django.core.wsgi import get_wsgi_application 
PROJECT_DIR = dirname(dirname(abspath(__file__)))
sys.path.insert(0,PROJECT_DIR)
os.environ["DJANGO_SETTINGS_MODULE"] = "blog.settings" 
application = get_wsgi_application()

11.分配项目权限

cd /home/tu/
sudo chmod -R 644 zqxt
sudo find zqxt -type d | xargs chmod 755

12.分配数据库权限

sudo chgrp www-data blog
sudo chmod g+w blog
sudo chgrp www-data blog/db.sqlite3  # 更改为你的数据库名称
sudo chmod g+w blog/db.sqlite3

13.分配media文件权限

cd media/ # 进入media文件夹
sudo chgrp -R www-data uploads
sudo chmod -R g+w uploads

14.启动

sudo a2ensite 001-default.conf
sudo service apache2 restart

极其重要的备注

  1. 项目一定要放在/var/www/目录下面,否则需要更改apache默认的项目目录
  2. 安装完pip之后记得安装django
  3. 若设置的监听端口不为80,需编辑 /etc/apache2/ports.conf 添加一行 Listen + 端口
  4. 记得设置django的setting文件的 ALLOWED_HOSTS = ['www.example.com']

!!!极其重要的网站!!!

本笔记整理自以下两个网站
自强学堂
博客园

可以忽视的备注(面向linux新手)

  1. 运行sudo apt upgrade时选择默认选项就可以了
  2. debian中,python表示python2,python3表示python3,该设置可调
  3. 用pip3 调用python3的pip

额。。。最后一点备注。。。

本作者没有试过python2呀,你们可以试试,如果出现问题欢迎评论。

共收到 1 条回复

可以的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册