apache2.4 +django1.9+python3+ubuntu15.10
这是我这几天学习部署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',)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>from os.path import join,dirname,abspathPROJECT_DIR = dirname(dirname(abspath(__file__)))import sys
sys.path.insert(0,PROJECT_DIR)
sudo chmod -R 644 test1
sudo find test1 -type d -exec chmod 755 {} \;
最后,重启apache2和激活网站sudo a2ensite sitename 或 sudo a2ensite sitename.conf不同的项目可能使用了不同的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`` 文件,
- 并且删除 ``easy-install.pth``中的 egg 引用就可以了.
- 这个文件应当可以在 ``site-packages`` 目录中被找到...
apache2.4 +django1.9+python3+ubuntu15.10的更多相关文章
- Ubuntu15.10下华南师大锐捷认证客户端的使用详解
本文测试Linux系统环境为Ubuntu15.10 Destop,暂未在其他系统下验证过,不代表LTS版本或较旧的版本按照本文所述方法可以100%正确使用最新的锐捷认证客户端. 本文面向对象为华南师范 ...
- HADOOP安装指南-Ubuntu15.10和hadoop2.7.2
Ubuntu15.10中安装hadoop2.7.2安装手册 太初 目录 1. Hadoop单点模式... 2 1.1 安装步骤... 2 0.环境和版本... 2 1.在ubu ...
- ubuntu15.10下编译安装wine1.8 rc4
ubuntu15.10下编译安装wine1.8rc4 Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Li ...
- ubuntu15.10 安装 virtualbox5.0
首先安装依赖包.ubuntu15.01安装的时候会出现这个错误: virtualbox-); however: Package libvpx1 is not installed 而且sudo apt- ...
- vm12 安装ubuntu15.10详细图文教程 虚拟机安装ubuntu安装 ubuntu更新软件 ubuntu一直卡在下载语言怎么办?
1,准备工作-ubuntu下载 ubuntu官网下载 如何官网下载ubuntu http://www.ubuntu.com/download/ 2,打开虚拟机 虚拟机安装ubuntu15.10 虚拟机 ...
- Redis集群部署文档(Ubuntu15.10系统)
Redis集群部署文档(Ubuntu15.10系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如 ...
- 更新ubuntu15.10后触摸板点击功能消失
问题描述: 昨天升级了ubuntu15.10,升级之后很多15.04让人不爽的东西消失了,大快人心,但是突然发现自己的触摸板不怎么好用了,原来可以点击,双指点击代表右键,三指点击代表鼠标中键的功能不见 ...
- ubuntu12.04 server + apache2 + wsgi + django1.6 部署
最近在学Python和Django,想自己部署一个服务器试试 环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 在网 ...
- windows下django1.7 +python3.4.2搭建记录1
python+django在linux下搭建比较简单,windows下搭建比较复杂,所以列在下方一.下载安装下载django的包,到刚解压后的Django-1.7目录下执行命令 python setu ...
随机推荐
- 编译安装-MySQL5.5
一.参数选项 1.目录选项 2.存储引擎选项 3.库文件加载选项 二.安装 1.环境准备 2.安装前的系统设置 3.安装执行 4.初始化数据库 5.注册为服务 6.加入环境变量 7.启动服务 8.重新 ...
- C:指针
指针 指针数组 参考1 参考2 参考3 参考4 1.指针 也是一种变量.指针内部存的是一块内存的地址. //指针: 通常我们说的指针其实是指针变量,相比于其他基本数据类型的变量不同,它存储 ...
- JavaScript 各种遍历方式详解,有你不知道的黑科技
http://segmentfault.com/a/1190000003968126 为了方便例子讲解,现有数组和json对象如下 var demoArr = ['Javascript', 'Gulp ...
- win7和linux下的文件共享
在vmware虚拟机下安装linux系统,如果自个电脑的win7设置成自动获取IP的话,每次使用FTP文件传输服务器都要检查win7和linux系统的IP是否处于同一网段,如果不是还要手动设置.再有一 ...
- 终于可以发布Delphi下收点OSGI精髓皮毛而设计的插件框架WisdomPluginFramework
这是一个Delphi实现的插件框架,我耗费了相当相当相当多的精力来设计她,虽然仅闪着点我微薄智慧的光芒,但我还是决定用Wisdom来命名她,也因它是我绝无仅有的,在完成1年多后回头来看仍能相当满意的作 ...
- CSS Gradient文字效果
你想创建的标题没有渲染和Photoshop每个标题吗?这里是一个简单的CSS技巧向您展示如何创建渐变文字效果,PNG图像(纯CSS,没有Javascript或Flash).你所需要的是一个空的< ...
- 【M9】利用destructors避免泄漏资源
1.在堆上获取的动态资源,用户忘记delete,或者由于异常导致没有没执行到delete,都会造成资源泄漏. 2.我们知道,栈上的对象,离开作用域,必定要执行析构方法.即使抛出异常,会堆栈回滚,保证已 ...
- jQuery + jQuery Mobile 实现省市二级下拉列表页面
一.需求: 提供省.市下拉列表,当用户选择省一级下拉列表项后,市下拉列表的各个选项自动变为该省对应的城市列表. 二.效果: 三.实现: 1.省市json数据,来自: http://www.cnblog ...
- Codeforces Round #337 (Div. 2) C. Harmony Analysis 构造
C. Harmony Analysis 题目连接: http://www.codeforces.com/contest/610/problem/C Description The semester i ...
- replace into
讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果 ...