Apache2服务配置ubuntu16.04+django1.11

本文详细介绍如何在Ubuntu16.04环境下,通过Apache2.4与Django1.11实现Python Web项目的部署。从Apache安装配置,到Django项目与Apache的无缝对接,包括WSGI模块设置、虚拟主机配置、静态文件处理等关键步骤。
摘要由CSDN通过智能技术生成

环境

  • Ubuntu 16.04
  • Python 3.5.2
  • Django 1.11
  • Apache 2.4

1.Apache2安装

sudo apt-get install apache

查看版本
apachectl -v

    Server version: Apache/2.4.18 (Ubuntu) Server built: 2017-09-18T15:09:02

2.确保有127.0.0.1 localhost,修改本地hosts文件

sudo vim /etc/hosts
127.0.0.1       localhost
127.0.0.1       www.pyweb.cn

3.打开浏览器 输入 127.0.0.1或localhost

出现 Apache2 Ubuntu Default Page
或It works!
则成功

4,安装apache2解析python的包 wsgi程序包

sudo apt-get install libapache2-mod-wsgi-py3
安装完成后 进入 /usr/lib/apache2/modules 目录
cd /usr/lib/apache2/modules 查看是否存在mod_wsgi.so-3.5

5.配置使apache2加载mod-wsgi包

编辑配置文件
sudo vim /etc/apache2/apache2.conf
在文件的最后 添加
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so-3.5

6,创建网站配置文件

编辑网站配置文件
sudo vim /etc/apache2/sites-available/推荐和项目同名或者使用域名.conf

配置内容:
<VirtualHost *:80>                                     # 服务端口号  web服务默认80不推荐修改
   ServerName www.pyweb.cn                             # 指定域名  刚刚修改的hosts文件添加的域名
   ServerAdmin py@163.cn # 邮箱随便 # wsgi文件目录 将apache和django连接在一起 WSGIDaemonProcess python-path=/var/www/project # python-path=/var/www/项目名字 WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py # /var/www/项目名/项目同名的文件夹/wsgi.py <Directory /var/www/myproject/myproject> # /var/www/项目名/项目同名目录 <Files wsgi.py> Require all granted </Files> </Directory> # 项目文件目录 DocumentRoot /var/www/myproject # /var/www/项目名 指定项目目录 <Directory /var/www/myproject> Require all granted </Directory> # 静态文件目录 # 指定项目静态资源路径 Alias /static/ /var/www/myproject/static/ # /var/www/项目名/static/ <Directory /var/www/myproject/static/> Require all granted </Directory> # 错误日志 日志名可以自己定义 ErrorLog ${APACHE_LOG_DIR}/django-myproject-error.log CustomLog ${APACHE_LOG_DIR}/myproject-django.log combined </VirtualHost>

7.将当前的配置文件创建一个软连接到/etc/apache2/sites-enabled

cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/自定义名字推荐域名.conf ./

8.执行命令 生效当前配置

sudo a2ensite myproject.conf 如果需要让这个配置失效,可以执行 sudo a2dissite myproject.conf

9.配置Django项目目录及修改seeting.py文件

首先把myproject项目目录拷贝至 /var/www/目录下

在将其ALLOWED_HOSTS=[]改为
ALLOWED_HOSTS=['www.pyweb.cn'],多个域名可以通过逗号隔开.

10.修改Django的wsgi.py文件

import os
os.environ["DJANGO_SETTINGS_MODULE"] = "myproject.settings" # myproject.settings 改成 项目名.settings 不改会报服务器内部错误 from os.path import join,dirname,abspath PROJECT_DIR = dirname(dirname(abspath(__file__))) import sys sys.path.insert(0,PROJECT_DIR) from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

11.最后:重启apache2

sudo service apache2 restart
   和python manage.py runserver测试环境不同,在Apache下每次修改都要重启apache

文件上传错误

给static文件夹或项目目录文件递归追加一个www-data用户权限
sudo setfacl -R -m u:www-data:rwx 项目文件夹名/ 

转载于:https://www.cnblogs.com/Py-Yanfan/p/10064094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值