这是我这几天学习部署django的总结,中间出现了不少的问题。特此记录下来,用来复习巩固,同时也希望给想学习的同学一些参考。

第一步:我在ubuntu上装的是python3。sudo apt-get install python3,这种方法不用设置环境变量。如果机器上python2和python3都有,为了方便可以修改python的默认版本 ,具体命令如下:

#先备份

sudo cp /usr/bin/python /usr/bin/python_bak、

#删除
sudo rm /usr/bin/python

#默认设置成python3.4
sudo ln -s /usr/bin/python3.4 /usr/bin/python.

在终端输入python,进入python3的

第二步:2.1下载django1.9 (https://www.djangoproject.com/download/)

然后解压(tar zxvf 下载的压缩文件名)
2.2 下载setuptools(https://pypi.python.org/pypi/setuptools),选择ez_setup.py,然后执行该文件,

chmod +x ez_setup.py,sudo ./ez_setup.py
4.进入解压之后产生的Django文件夹,安装。

Django.sudo python setup.py install
5.检查是否安装完成。

python

import django

django.VERSION

能够看到版本号即为安装成功。
此方式为下载源码安装

安装wsgi 。 sudo apt-get install libapache2-mod-wsgi-py3

第三步:写一个django测试项目,这个项目很简单,没有用到各种复杂的东西。本人是在主目录下建一个workspace文件夹,然后在这个文件夹下建立项目test1

项目的绝对路径是/home/zhaoxu/workspace/test1

#新建一个test项目

cd /home/zhaoxu/worksapce

django-admin.py startporject test1

#新建app ,名为hello

cd test1

python manage.py startapp hello

将app加入到项目的settings中

sudo vi  /home/zhaoxu/test1/test1/settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'learn',
)
定义视图函数
sudo vi /home/zhaoxu/test1/hello/views.py
添加
from django.http import HttpResponse

def home_view(request):
        return HttpResponse('Hello World')

修改url.py

sudo vi /home/zhaoxu/test1/test1/url.py

from hello import views as hello_views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',hello_views.home_view),
]
。至此django简单配置就完成了。如果想要检验自己配置的是否正确,可以先用django自身的web服务器试试。

cd /home/zhaoxu/workspace/test1

python manage.py runserver #打开django自带的web服务器

在浏览器中输入127.0.0.1:8000,如果页面跳转出现Hello World,说明配置是成功的。关闭这个服务器的方法是Ctrl + C

第四步 安装apache2

如果机器上装安装apache2.4,我不是采用源码安装的。

sudo apt-get install apache2

安装完成后浏览器输入127.0.0.1,弹出网页it works!,安装成功,这是成功的关键一步。如果apache2出现点问题,想要卸载完再装,方法如下:

sudo apt-get --purge remove apache2,切记如果提示有一些文件没有删除,一定要手动删除(sudo rm -rf 文件路径)

sduo apt-get autoremove ,这一步如果出错,可以用以下的方法:

1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名
2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
3.$ sudo apt-get update, apt-get -f install //不用解释了吧
4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
5.$ sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夹重新改回名字

然后在whereis apache2,把剩下的apache2文件手动删除。

第五步 配置apache2,目前只用到apache2的虚拟主机功能

我的虚拟主机名为:www.yourdomain.com

在/etc/apache2/site-available目录下新建一个虚拟主机配置文件,我命名为sitename.conf

sudo vi /etc/apache2/site-available/sitename.conf

<VirtualHost *:80>
    ServerName www.yourdomain.com #虚拟主机的域名,可以在浏览器中输入。
    ServerAlias otherdomain.com
  
    Alias /media/ /home/zhaoxu/workspace/test1/media/#存储媒体文件的路径
    Alias /static/  /home/zhaoxu/workspace/test1/static/#存储静态文件的路径
  
    <Directory  /home/zhaoxu/workspace/test1/media>
        Require all granted
    </Directory>
  
    <Directory /home/zhaoxu/workspace/test1/static>
        Require all granted
    </Directory>
  
    WSGIScriptAlias /  /home/zhaoxu/workspace/test1/test1/wsgi.py  #非常重要的一步,将apache2与django项目相结合
    <Directory  /home/zhaoxu/workspace/test1/test1>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
</VirtualHost>
然后修改wsgi.py
sudo vi /home/zhaoxu/workspace/test1/test1/wsgi.py
from os.path import join,dirname,abspath
PROJECT_DIR = dirname(dirname(abspath(__file__)))
import sys
sys.path.insert(0,PROJECT_DIR)
修改settings.py
sudo vi /home/zhaoxu/workspace/test1/test1/settings.py
添加
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1',www.yourdomain.com']
接着设置目录和文件的权限
cd /home/zhaoxu/workspace
sudo chmod -R 644 test1
sudo find test1 -type d -exec chmod 755  {} \;
 
最后,重启apache2和激活网站
/etc/init.d/apache2 restart
sudo a2ensite sitename 或 sudo a2ensite sitename.conf
在浏览器中输入www.yourdomain.com,即可出现Hello World页面,也就是我们在django中test1项目的网页。
要注意的是www.yourdomain.com要在hosts文件中解析,sudo vi /etc/hosts
127.0.0.1  www.yourdomain.com
要想检查是否正确,可用ping命令进行测试。ping www.yourdomain.com。能ping通说明配置正确。
 配置的方向是VirtualHost->wsgi.py->settings.py->urls.py->views.py
以上就是简单的配置过程,搭建一个良好的平台是开发网站很重要的一步。平台搭建好以后就可以从网上学习django开发的教程。另外,以上还不是特别的详细,关于静态文件和媒体文件的settings没有写。推荐http://www.ziqiangxuetang.com/django/django-deploy.html。写的很详细,但是稍微有点瑕疵,大家可以结合我写的和教程中的一块看。
 
 
 

不同的项目可能使用了不同的Django版本,兼任性是大问题,

如果不幸要去接手不同版本的项目,比较惨烈!

如果想重装一个Django版本,需要先卸载后安装。

首先找到django安装路径

python import sys; sys.path = sys.path[1:]; import django; print(django.__path__)

得到 django 安装目录 ['/Library/Python/2.7/site-packages/django'] 
删除 django 目录即可 
之后可以重新安装

如果你使用 Python egg 来安装 Django, 直接删除 Django ``.egg`` 文件,

  1. 并且删除 ``easy-install.pth``中的 egg 引用就可以了.
  2. 这个文件应当可以在 ``site-packages`` 目录中被找到...

apache2.4 +django1.9+python3+ubuntu15.10的更多相关文章

  1. Ubuntu15.10下华南师大锐捷认证客户端的使用详解

    本文测试Linux系统环境为Ubuntu15.10 Destop,暂未在其他系统下验证过,不代表LTS版本或较旧的版本按照本文所述方法可以100%正确使用最新的锐捷认证客户端. 本文面向对象为华南师范 ...

  2. HADOOP安装指南-Ubuntu15.10和hadoop2.7.2

    Ubuntu15.10中安装hadoop2.7.2安装手册 太初 目录 1.      Hadoop单点模式... 2 1.1        安装步骤... 2 0.环境和版本... 2 1.在ubu ...

  3. ubuntu15.10下编译安装wine1.8 rc4

    ubuntu15.10下编译安装wine1.8rc4 Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Li ...

  4. ubuntu15.10 安装 virtualbox5.0

    首先安装依赖包.ubuntu15.01安装的时候会出现这个错误: virtualbox-); however: Package libvpx1 is not installed 而且sudo apt- ...

  5. vm12 安装ubuntu15.10详细图文教程 虚拟机安装ubuntu安装 ubuntu更新软件 ubuntu一直卡在下载语言怎么办?

    1,准备工作-ubuntu下载 ubuntu官网下载 如何官网下载ubuntu http://www.ubuntu.com/download/ 2,打开虚拟机 虚拟机安装ubuntu15.10 虚拟机 ...

  6. Redis集群部署文档(Ubuntu15.10系统)

    Redis集群部署文档(Ubuntu15.10系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如 ...

  7. 更新ubuntu15.10后触摸板点击功能消失

    问题描述: 昨天升级了ubuntu15.10,升级之后很多15.04让人不爽的东西消失了,大快人心,但是突然发现自己的触摸板不怎么好用了,原来可以点击,双指点击代表右键,三指点击代表鼠标中键的功能不见 ...

  8. ubuntu12.04 server + apache2 + wsgi + django1.6 部署

    最近在学Python和Django,想自己部署一个服务器试试 环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 在网 ...

  9. windows下django1.7 +python3.4.2搭建记录1

    python+django在linux下搭建比较简单,windows下搭建比较复杂,所以列在下方一.下载安装下载django的包,到刚解压后的Django-1.7目录下执行命令 python setu ...

随机推荐

  1. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  2. 用SSH连接SSH连接nitrous.io

    CSDN怎么传不上图片... http://user.qzone.qq.com/1756942789/blog/1388662053 1:先下载Bitvise SSH 2:打开 keypair man ...

  3. [转]ViewPager onPageChangeListener总结

    android ViewPager滑动事件讲解 首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageChangeListener这个接口需要实现三个方 ...

  4. Oracle 将不同列的值拼接成一个 字符串

    利用拼接操作符“||”或者 CONCAT('','')函数,将不同列的值 拼接成一个 字符串   -- 方法一:推荐 SELECT S.TEAM ||'**'|| S.NAME ||'**'|| S. ...

  5. 实现带查询功能的Combox控件

    前言 ComBox 还可以实现查询功能,通过设置 ComBox 控件的 AutoCompleteSource 属性和 AutoCompleteMode 属性,可以实现从 Combox 控件中查询已存在 ...

  6. ao的编辑操作

    自从10.0以后,ArcMap的编辑界面发生了变化,原本的“目标图层”和“编辑任务”不见了,取而代之的是“要素构造”窗口,里面融合了目标图层和编辑任务功能.查看sdk发现,多了几个接口,前面已经讲过. ...

  7. Hibernate 与 Spring 的整合

    刚刚学习了hibernate和Spring的整合,现在来总结一下. 以实现一个功能为例,与大家分享一下整个过程. 需要实现的功能:建立一个Person类,该类包括name,sex,age,birtha ...

  8. position:sticky用法

    用户的屏幕越来越大,而页面太宽的话会不宜阅读,所以绝大部分网站的主体宽度和之前相比没有太大的变化,于是浏览器中就有越来越多的空白区域,所以你可能注意到很多网站开始在滚动的时候让一部分内容保持可见,比如 ...

  9. unicode 编码在线转换--javascript

    // unicode 编码在线转换工具--javascript 本人在网上搜索,看到有使用javascript做unicode编码转换的,感觉很好玩,所以拿来使用的. 这个功能有目前测试了两种: 1) ...

  10. RFID Reader 线路图收集

    This 125 kHz RFID reader http://www.serasidis.gr/circuits/RFID_reader/125kHz_RFID_reader.htm http:// ...