首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeBSD:如何用mod_wsgi安装Django?

FreeBSD:如何用mod_wsgi安装Django?
EN

Unix & Linux用户
提问于 2011-06-23 21:11:27
回答 2查看 5.1K关注 0票数 2

使用FreeBSD 8.2-发布。我想和Django混在一起,我想在freebsd系统上建立一个工作的系统。我的理解是,我需要安装python、apache、mod_wsgi和django。关于Django的手册部分讨论的是mod_python而不是mod_wsgi,我相信mod_wsgi是推荐的方法。

我的系统已经从软件包中安装了以下内容:

代码语言:javascript
复制
apache-2.2.17_1 
python26-2.6.6 

我要做什么让django与apache一起工作?有教程吗?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2011-06-26 00:04:23

好的,我主要是在以下说明的帮助下完成这项工作的:http://code.google.com/p/modwsgi/wiki/InstallationOnFreeBSD

下面是我(作为根用户)所做的工作:

重新安装apache

我已经从二进制包中安装了apache22,但是显然包版本是在没有线程支持的情况下编译的,您需要mod_wsgi的线程。所以我做了:pkg_delete apache-2.2.17_1。它抱怨php依赖于apache,所以我就这么做了:pkg_delete php5-5.3.5。然后我又做了一次pkg_delete apache-2.2.17_1,它起作用了。然后我做了cd /usr/ports/www/apache22,然后是make config,然后选中了复选框"[X] THREADS Enable threads support in APR",然后是make,然后是make install。启动apache成功了,但是我得到了一个错误:“警告没有这样的文件或目录:未能启用'httpready‘接受过滤器”。我在网上搜索并通过执行kldload accf_httpapachectl restart来修复它,然后在我的/boot/loader.conf中添加了accf_http_load="YES“,这样在重新启动之后这个更改就会持续。

安装mod_wsgi

代码语言:javascript
复制
cd /usr/ports/www/mod_wsgi3
make
make install

这会自动修改我的httpd.conf文件以添加加载模块行。

Resinstall php

(这不是绝对必要的,但由于我必须在上面卸载它)

代码语言:javascript
复制
cd /usr/ports/lang/php5
make config (and set any options desired)
make
make install

测试mod_wsgi安装

按照http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide的指示执行。我在文档根目录中创建了一个名为test.wsgi的文件,其内容如下:

代码语言:javascript
复制
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]

我在我的httpd.conf末尾添加了以下一行:

代码语言:javascript
复制
WSGIScriptAlias /myapp /usr/home/myusername/www/wsgitest/test.wsgi

(在我的测试框中,我在/usr/home/myusername/www有一个带有文档根的apache安装程序)。然后我重新启动了。然后我在我的浏览器里去了http://localhost/myapp,瞧!我看了“你好世界”。

安装pip

代码语言:javascript
复制
cd /usr/ports/devel/py-pip
make
make install

刷新了我的shell,所以路径会更新。

安装django

代码语言:javascript
复制
pip install django

(这让我得到了django版本1.3 yay!)确认django安装

代码语言:javascript
复制
python
import django

创建django测试应用程序

我为django测试mkdir /usr/home/myusername/www/djangotest创建了一个新文件夹。然后

代码语言:javascript
复制
django-admin.py startproject mysite

创建django wsgi文件

创建了一个具有以下内容的新文件/usr/home/myusername/www/djangotest/django.wsgi:

代码语言:javascript
复制
import os
import sys
path = '/usr/home/myusername/www/djangotest'
if path not in sys.path:
    sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

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

编辑httpd.conf

代码语言:javascript
复制
WSGIScriptAlias /djangotest /usr/home/myusername/www/djangotest/django.wsgi
apachectl restart

在浏览器中访问http://locahost/djangotest。它起作用了!

编辑httpd-vhosts.conf (可选)

现在,让它作为虚拟主机的一部分工作。注释掉WSGIScriptAlias行中的httpd.conf。然后添加如下内容:

代码语言:javascript
复制
<VirtualHost *>
 ServerName mytest.whatever
 DocumentRoot /usr/home/myusername/www/djangotest
 WSGIScriptAlias / /usr/home/myusername/www/djangotest/django.wsgi
</VirtualHost> 

apachectl restart

配置主机文件后,在浏览器中访问http://mytest.whatever。它起作用了!

票数 0
EN

Unix & Linux用户

发布于 2011-06-24 08:14:54

您不必安装任何特殊的东西来处理Django。调试服务器工作所需的唯一条件是:

  • Python
  • Django本身
  • 如果您想要的不是SQLite,那么数据库的Python模块

您已经有Python了,所以我建议:

代码语言:javascript
复制
easy_install pip
pip install django

然后跟着姜戈教程

当您使用mod_wsgi应用程序时,部署就会发挥作用。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/15525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档