如何在alwaysdata上启用django程序

alwaysdata网站免费提供支持python/django/ssh的hosting service,十分好用,虽然有两个限制:

  1. 法文界面,包括注册、wiki文档;
  2. 空间10M,月流量1G。

这两个限制其实可以从另外的角度来理解:法文界面而非英文界面,将许多只会英文而不善于使用google translate的用户拒之门外,于是这款主机不会被abuse,尤其是被某国的人abuse以致夭折(我可没有说是贵国);10M的空间,对于练手,hosting一个简单的django应用,已经足矣;况且它还有ssh可用。

其实GAE的python/django也好用,只不过是阉割版,没有PIL等好用模块的完善支持,所以alwaysdata是一个不错的备选方案。

如何激活django程序(译自其wiki

  1. 首先在后台选择python和django的版本。
  2. 在项目文件夹中建立public文件夹。
  3. 在public文件夹中新建django.fcgi文件,内容如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    #!/usr/bin/python
    import os, sys
     
    _PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.insert(0, _PROJECT_DIR)
    sys.path.insert(0, os.path.dirname(_PROJECT_DIR))
     
    _PROJECT_NAME = _PROJECT_DIR.split('/')[-1]
    os.environ['DJANGO_SETTINGS_MODULE'] = "%s.settings" % _PROJECT_NAME
     
    from django.core.servers.fastcgi import runfastcgi
    runfastcgi(method="threaded", daemonize="false")

    使用ssh :chmod +x django.fcgi,或使用fxp为其增加可执行属性,否则会出现500错误。

  4. 在public文件夹新建.htaccess文件,内容如下:
    1
    2
    3
    4
    
    AddHandler fcgid-script .fcgi
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]
  5. 如果在django程序中使用了admin管理界面,还要执行下面的命令:
    ln -s /var/lib/python/django/1.0/django/contrib/admin/media/ media
    这一步也是在public文件夹里作的。如果启用了admin模块而不添加链接,打开admin页面时就会显示空白而不显示django管理窗口。
  6. 在http://admin.alwaysdata.com页面下,将域名转到public路径。例如账户名为myaccount的账户,其子域名为myaccount.alwaysdata.net ,要将其与/home/myaccount/www/myproject/public 对应。

附,程序应该是如下结构:

1
2
3
4
5
6
7
8
9
10
11
12
myproject/
    __init__.py
    manage.py
    public/
        django.fcgi
        .htaccess
        media/
    settings.py
    urls.py
    myapp/
        views.py
        models.py

附:无奈的链接三枚

附:无聊的留言几枚

  • 1. 饭否明天恢复!2. 如果还没恢复,请参考第一条。(某饭友)
  • 王兴是个骗子。他在电视上说他在做什么饭否网,我打开浏览器登陆才发现,根本没有这个网站。(某饭友)
  • 看到有人有发起“是饭否用户就请自觉抵制嘀咕”的活动。我去。清兵都入关做大了,大家还在为拥唐王、桂王打个头破血流;长那个城都把大家圈住了,大家还在为拥饭否、嘀咕骂个昏天地黑。那些拥各个王的,先打清兵好不好?那些在微博里争风的,有本事的话搞定长那个城行不行?(rex
  • 有的饭否用户来到推特不适应,原因多多:好友少(没得谈),关注者少(受冷落),氛围有异(不少英文推友)。另外,饭否上大批的饭痨、流氓也销声匿迹了(或者是没有关注到。你关注什么人,呈现在你面前的就是什么样的微博世界)(rex
  • 饭否已经不见了,只能每天默默地刷新一次http://fanfou.com/ ,但是有话要说,终于还是找到其它微博。嘀咕有很好看界面,眩目的ajax应用,花哨的手机功能,鲜嫩的90后的打情,勇敢的非主流的骂俏,但是这个落伍的饭否小伙就像古高昌国人那样固执:“那都是很好很好的,可是我偏不喜欢。” (rex
2009年7月17日11:04
  • angelstone
    2009年7月17日12:13 | #1

    每天睡前醒后默默刷http://fanfou.com http://m.fanfou.com http://3g.fanfou.com的无奈飘过...

  • 2009年8月2日12:36 | #2

    王兴是个骗子。他在电视上说他在做什么饭否网,我打开浏览器登陆才发现,根本没有这个网站。

  • 2009年9月23日08:05 | #3

    在http://admin.alwaysdata.com页面下,将域名转到public路径。例如账户名为myaccount的账户,其子域名为 myaccount.alwaysdata.net ,要将其与/home/myaccount/www/myproject/public 对应。

    对应起来后出现错误如下:
    Forbidden
    You don’t have permission to access / on this server.

    请问是什么回事?

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">