第一次配置DJango2.2+Apache2.4

环境

  • Ubuntu16.4
  • Django=2.2
  • apach2.4
  • python3.7
    我使用的是python虚拟环境配置
    首先到导入相应的包
    一切都是在python3.7的环境下面执行 包括pip也是 如果系统默认python版本没有改变的话 可以参考 这个
pip install virtualenv
apt-get install libapache2-mod-wsgi      #    Python2
apt-get install libapache2-mod-wsgi-py3  # Python3

一般安装好apache之后 会有一个目录为/var/www之后便将我们所使用的django项目放置于该目录下面 使用刚刚下载好的virtualenv创建一个虚拟环境

vitualenv name # 目录自定义名字

直接这样使用会当前系统的python版本
就在创建的虚拟环境中进行配置
进入到虚拟环境目录

source bin/activate #激活虚拟环境
pip install django==2.2    #推荐使用2.x版本 因为django3.x支持的太少了

如果是使用的是>=python3.6以上的话 如果没有secrets包 要自行下载 不知道是不是我之前手残把系统自带的3.5给卸载了 还是什么 之后配置apache的时候 一直出现乱七八糟的错误

pip install pyOpenSSL # 先下载这个包 为了方便后面下载secrets
pip install secrets

之后就把自己的django项目放到创建的虚拟目录下面就好了
django创建项目
这里为了方便假设django项目为first

/var/www/name/first        # 这里是first的位置

之后配置apache

vim /etc/apache2/sites-available/sitename.conf # 这里 sitename 任意

这里写入文件内存参考 [WangC.W]
通过apt-get 下载的mod_wsgi太老了 对多目录python-path 支持不好 所以把参考文章的python-path 拆出来了python-home

#在这里写入sitename.conf
# 第一次学django 有些东西没有配置什么的
<VirtualHost *:80>
        ServerName  www.yourdomain.com  #没有就填写域名
        WSGIScriptAlias / /var/www/name/first/first/wsgi.py
        WSGIDaemonProcess  www.yourdomain.com  python-home=/var/www/name python-path=/var/www/name/lib/python3.7/site-packages
        WSGIProcessGroup  www.yourdomain.com

        <Directory /var/www/name/first/first/static/>
                 # 2.4 
                 Require all granted 
        		#2.2 
        		# Order allow,deny
        		# Allow From All
        </Directory>

        <Directory /var/www/name/first/first/>
        <Files wsgi.py>
                # 2.4 同上
                Require all granted
        </Files>
        </Directory>
</VirtualHost>

关于上面的 WSGIDaemonProcess WSGIProcessGroup的配置 最好还是去看官方文档
然后通过命令

a2ensite sitename.conf #启用刚刚的conf文件
#有时也要禁用在启用
a2dissite sitename.conf

service apache2 reload

完成之后就去将django里面的wsgi文件修改一下

vim /var/www/name/first/first/wsgi.py

修改内容如下

import os
import 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.setdefault("DJANGO_SETTINGS_MODULE", "wangcwblog.settings")

application = get_wsgi_application()

到这里就可以访问了通过IP地址进行访问
如果出现了错误 一定要去看apache的日志

cat /var/log/apache2/error.log

一般出现AH00489有很大部分是环境问题
列举几个我出现的问题

  • No module Django 直接pip install 就好了 这个是因为我最开始不是直接用的虚拟环境 导致的
  • No module secrets 上面已经提到过了
  • fatal error:sasl/sasl.h: No such file or directory 用的apt-get install apache2-dev
  • 貌似好像就没有什么问题了 如果有什么问题可以发出来 一起交流

新人第一次记录 希望各位大牛有什么不对的地方可以指出来


本文参考链接
WangC.W https://www.cnblogs.com/wangchaowei/p/6857648.html

发布了1 篇原创文章 · 获赞 0 · 访问量 24
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览