当前位置: 首页 > news >正文

Ubuuntu10.04上配置Django、Apache、mod_wsgi

Ubuuntu10.04上配置Django、Apache、mod_wsgi - Finger Blog - ITeye技术网站

Ubuuntu10.04上配置Django、Apache、mod_wsgi

博客分类: Django Python
django python
1、更新服务


Java代码   收藏代码
  1. sudo apt-get update  
  2. sudo apt-get upgrade  
sudo apt-get update
sudo apt-get upgrade




安装Apache和mod_wsgi


Java代码   收藏代码
  1. sudo apt-get install apache2 libapache2-mod-wsgi  
sudo apt-get install apache2 libapache2-mod-wsgi




安装工具setuptools 和pip


Java代码   收藏代码
  1. sudo apt-get install python-setuptools  
  2. sudo apt-get install python-pip  
sudo apt-get install python-setuptools
sudo apt-get install python-pip




安装Django


Java代码   收藏代码
  1. sudo pip install django  
sudo pip install django




创建站点目录


Java代码   收藏代码
  1. sudo mkdir /srv/www  
sudo mkdir /srv/www




2、添加host进行测试


Java代码   收藏代码
  1. sudo nano /etc/hosts  
sudo nano /etc/hosts



Java代码   收藏代码
  1. 127.0.0.1    djangoserver  
  2. 127.0.0.1    wsgi.djangoserver  
  3. 127.0.0.1    hello.djangoserver  
127.0.0.1    djangoserver
127.0.0.1    wsgi.djangoserver
127.0.0.1    hello.djangoserver




3、测试WSGI是否正常工作


Java代码   收藏代码
  1. sudo mkdir /srv/www/wsgi  
  2. sudo nano /srv/www/wsgi/app.wsgi  
sudo mkdir /srv/www/wsgi
sudo nano /srv/www/wsgi/app.wsgi


添加以下内容:


Java代码   收藏代码
  1. def application(environ, start_response):  
  2.     status = '200 OK'  
  3.     output = 'Hello World!'  
  4.    
  5.     response_headers = [('Content-type''text/plain'),  
  6.                         ('Content-Length', str(len(output)))]  
  7.     start_response(status, response_headers)  
  8.    
  9.     return [output]  
def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]




创建一个新的apache站点


Java代码   收藏代码
  1. sudo nano /etc/apache2/sites-available/wsgi  
sudo nano /etc/apache2/sites-available/wsgi


添加以下内容:


Java代码   收藏代码
  1. <VirtualHost *:80>  
  2.    
  3.     ServerName wsgi.djangoserver  
  4.     DocumentRoot /srv/www/wsgi  
  5.    
  6.     <Directory /srv/www/wsgi>  
  7.         Order allow,deny  
  8.         Allow from all  
  9.     </Directory>  
  10.    
  11.     WSGIScriptAlias / /srv/www/wsgi/app.wsgi  
  12.    
  13. </VirtualHost>  
<VirtualHost *:80>

    ServerName wsgi.djangoserver
    DocumentRoot /srv/www/wsgi

    <Directory /srv/www/wsgi>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / /srv/www/wsgi/app.wsgi

</VirtualHost>




激活站点


Java代码   收藏代码
  1. sudo a2ensite wsgi  
  2. sudo /etc/init.d/apache2 reload  
sudo a2ensite wsgi
sudo /etc/init.d/apache2 reload




http://wsgi.djangoserver



效果如下:







4、测试Django是否正常工作

创建Django工程


Java代码   收藏代码
  1. cd /srv/www  
  2. sudo django-admin.py startproject hello  
cd /srv/www
sudo django-admin.py startproject hello




配置Django的wsgi文件


Java代码   收藏代码
  1. sudo mkdir /srv/www/hello/apache  
  2. sudo nano /srv/www/hello/apache/django.wsgi  
sudo mkdir /srv/www/hello/apache
sudo nano /srv/www/hello/apache/django.wsgi


添加以下内容:


Java代码   收藏代码
  1. import os  
  2. import sys  
  3.    
  4. path = '/srv/www'  
  5. if path not in sys.path:  
  6.     sys.path.insert(0'/srv/www')  
  7.    
  8. os.environ['DJANGO_SETTINGS_MODULE'] = 'hello.settings'  
  9.    
  10. import django.core.handlers.wsgi  
  11. application = django.core.handlers.wsgi.WSGIHandler()  
import os
import sys

path = '/srv/www'
if path not in sys.path:
    sys.path.insert(0, '/srv/www')

os.environ['DJANGO_SETTINGS_MODULE'] = 'hello.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()




创建一个新的apache站点


Java代码   收藏代码
  1. sudo nano /etc/apache2/sites-available/hello  
sudo nano /etc/apache2/sites-available/hello


添加以下内容:


Java代码   收藏代码
  1. <VirtualHost *:80>  
  2.    
  3.     ServerName hello.djangoserver  
  4.     DocumentRoot /srv/www/hello  
  5.    
  6.     <Directory /srv/www/hello>  
  7.         Order allow,deny  
  8.         Allow from all  
  9.     </Directory>  
  10.    
  11.     WSGIDaemonProcess hello.djangoserver processes=2 threads=15 display-name=%{GROUP}  
  12.     WSGIProcessGroup hello.djangoserver  
  13.    
  14.     WSGIScriptAlias / /srv/www/hello/apache/django.wsgi  
  15.    
  16. </VirtualHost>  
<VirtualHost *:80>

    ServerName hello.djangoserver
    DocumentRoot /srv/www/hello

    <Directory /srv/www/hello>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIDaemonProcess hello.djangoserver processes=2 threads=15 display-name=%{GROUP}
    WSGIProcessGroup hello.djangoserver

    WSGIScriptAlias / /srv/www/hello/apache/django.wsgi

</VirtualHost>




激活站点


Java代码   收藏代码
  1. sudo a2ensite hello  
  2. sudo /etc/init.d/apache2 reload  
sudo a2ensite hello
sudo /etc/init.d/apache2 reload


http://hello.djangoserver

效果如下:









原文地址:http://blog.stannard.net.au/2010/12/11/installing-django-with-apache-and-mod_wsgi-on-ubuntu-10-04/

相关文章:

  • ${ }的特别功能
  • 依据现有系统编写小型linux系统
  • pku 2623 Crashing Robots 第一周训练——模拟
  • 站长百科访谈第59期:张清分享网站优化技巧
  • Castle ActiveRecord的一对多问题
  • syntax error near unexpected token `then'
  • flex和javascript互相调用的一个例子
  • JSTL SQL标签库 使用
  • 数据结构--二叉树 的先序,中序,后序遍历
  • Directx11 教程(2) 基本的windows应用程序框架(2)
  • 多播_1
  • 【数据结构】排序算法(二)之交换排序之快速排序(QuickSort)
  • 批量缩小图片的方法
  • 精分神作さよならを教えて全解析
  • 在使用VC++6.0常见问题“Error spawning cl.exe”的解决方法
  • [case10]使用RSQL实现端到端的动态查询
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • Android框架之Volley
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java的Interrupt与线程中断
  • Joomla 2.x, 3.x useful code cheatsheet
  • JS+CSS实现数字滚动
  • maya建模与骨骼动画快速实现人工鱼
  • PHP的Ev教程三(Periodic watcher)
  • 复杂数据处理
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 面试遇到的一些题
  • 云大使推广中的常见热门问题
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • Hibernate主键生成策略及选择
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 回归生活:清理微信公众号
  • ​2020 年大前端技术趋势解读
  • $L^p$ 调和函数恒为零
  • (6)STL算法之转换
  • (BFS)hdoj2377-Bus Pass
  • (Git) gitignore基础使用
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (过滤器)Filter和(监听器)listener
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)程序员技术练级攻略
  • (转)大型网站的系统架构
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .netcore 获取appsettings
  • .net连接MySQL的方法
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • ::什么意思
  • :O)修改linux硬件时间
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)