django+apache在Ubuntu环境下部署

1、安装python(我这里用的是python 3.5)
2、安装apache 2.4
3、安装diango
4、创建diango项目

开始

能用到部署的朋友想必以上几步已经完成了
比如我门在/var/www下执行了 $django-admin startproject HelloWorld命令

$ cd HelloWorld/
目录结构如下:
|– HelloWorld
| |– init.py
| |– settings.py
| |– urls.py
| -- wsgi.py
– manage.py
一、安装wsgi
(1)$sudo apt-get install libapache2-mod-wsgi-py3
说明:如果你用的是python2的话就要更换成 sudo apt-get install libapache2-mod-wsgi
二、为django项目配置虚拟主机
(1)cd /etc/apache2/site-available
(2)cp 000-default.conf hello.conf
(3)修改hello里的内容为

<VirtualHost *:8000>
#这里是端口号可以按需要指定我这里暂时设置为8000(注意必须是没有被占用的端口)
    DocumentRoot /var/www/HelloWorld/HelloWorld
    <Directory /var/www/HelloWorld/HelloWorld>
       Require all granted
    </Directory>
   WSGIScriptAlias / /var/www/HelloWorld/HelloWorld/wsgi.py
</VirtualHost>

三、为项目添加端口监听
(1)$sudo vim /etc/apache2/ports.conf
在里面添加一行 listen 8000
四、配置项目
(1)修改wsgi.py为

import os
from django.core.wsgi import get_wsgi_application
import sys
sys.path.append("/var/www/HelloWorld/")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "HelloWorld.settings")

application = get_wsgi_application()

(2)修改setting.py
将ALLOWED_HOSTS =[]修改为ALLOWED_HOSTS = [‘*’]
(3)设置目录权限
一般目录权限设置为 755,文件权限设置为 644

假如项目位置在 /var/www/HelloWorld(在HelloWorld下面有一个 manage.py,HelloWorld是项目名称)

cd var/www/
sudo chmod -R 644 HelloWorld
sudo find HelloWorld -type d -exec chmod 755 \{\} \
五、配置生效
$a2ensite hello.conf
$service apache2 reload
有时候会无法启动apache可能是无法加载wsgi的某个文件,执行下面的命令
sudo apt-get purge libapache2-mod-wsgi-py3
sudo apt-get install libapache2-mod-wsgi-py3
然后再次重启apache
最后访问服务器的8000端口得到如下页面

这里写图片描述
参考博客https://my.oschina.net/crazyharry/blog/341289
https://www.cnblogs.com/Junsept/p/6862595.html

发布了14 篇原创文章 · 获赞 8 · 访问量 6143

猜你喜欢

转载自blog.csdn.net/KangTongShun/article/details/81028767