Personal tools
You are here: Home 清水川記 buildoutで開発 番外編2: buildoutでDeliverance環境を作る
Document Actions

buildoutで開発 番外編2: buildoutでDeliverance環境を作る

Zope/Plone勉強会3 でDeliverance環境を作った手順をまとめてみました。 とりあえず環境を作りたい!という人向け。

ちなみにDeliveranceについては以下を参照ください。

環境を作る

とりあえずVirtualEnv環境を作ります。PythonとVirtualEnvは入っている前提で。

virtualenv & install

> cd c:/project/buildout
> virtualenv deliv
> cd deliv
> bin/activate
> easy_install zc.buildout
> mkdir deliv1
> cd deliv1

deliv1フォルダにbuildout.cfgを書きます:

[buildout]
parts = deliverance

# mr.developer
extensions = mr.developer
sources = sources
auto-checkout = deliverance

[deliverance]
recipe = zc.recipe.egg
eggs =
    deliverance
    PasteScript
    PasteDeploy

[sources]
deliverance = svn http://codespeak.net/svn/z3/deliverance/trunk

buildoutを実行します。

buildout

> buildout
...
Installing deliverance.
Generated script '..deliv1\bin\deliverance-proxy'.
Generated script '..deliv1\bin\deliverance-speed'.
Generated script '..deliv1\bin\deliverance-static'.
Generated script '..deliv1\bin\deliverance-handtransform'.
Generated script '..deliv1\bin\deliverance-tests'.
Generated script '..deliv1\bin\paster'.

Deliveranceの設定ファイル等をPasterで自動生成します。

paster crate --list-templates

> bin/paster.exe create --list-templates
Available templates:
basic_package: A basic setuptools-enabled package
deliverance: Basic template for a deliverance-proxy setup
deliverance_plone: Plone-specific template for deliverance-proxy
paste_deploy: A web application deployed through paste.deploy

paster create -t deliverance

> bin/paster.exe create -t deliverance
Selected and implied templates:
deliverance#deliverance Basic template for a deliverance-proxy setup

Enter project name: DelivTest
Variables:
egg: DelivTest
package: delivtest
project: DelivTest
Enter host (The host/port to serve on) ['localhost:8000']:
Enter proxy_url (The main site to connect/proxy to) ['http://localhost:8080']:
Enter proxy_rewrite_links (Rewrite links from sub_host?) ['n']:
Enter password (The password for the deliverance admin console) ['']: admin
Enter theme_url (A URL to pull the initial theme from (optional)) ['']: theme
Creating template deliverance
Creating directory .\DelivTest
...

できました。現時点のファイル構成:

c:\\Project\\buildout\\deliv\
  +--bin
  |  +-- deliverance-handtransform-script.py
  |  +-- deliverance-handtransform.exe
  |  +-- deliverance-proxy-script.py
  |  +-- deliverance-proxy.exe
  |  +-- deliverance-speed-script.py
  |  +-- deliverance-speed.exe
  |  +-- deliverance-static-script.py
  |  +-- deliverance-static.exe
  |  +-- deliverance-tests-script.py
  |  +-- deliverance-tests.exe
  |  +-- develop-script.py
  |  +-- develop.exe
  |  +-- paster-script.py
  |  +-- paster.exe
  |
  +--DelivTest
  |  +--etc
  |  |  +-- deliv-users.htpasswd
  |  |  +-- deliverance.xml
  |  |  +-- supervisor.d
  |  |  +-- supervisord.conf
  |  +--logs
  |  +--theme
  |  |  +-- style.css
  |  |  +-- theme.html
  |  +--var
  |
  +--develop-eggs
  +--parts
  +--src
      +--deliverance
          + deliveranceのソースコード

【注意】ここで、Windowsの人はDeliveranceの不具合修正が必要かも. ここからパッチを取得してください

Deliveranceを設定する

Deliveranceのコンフィグファイル DelivTest/etc/deliverance.xml をちょっと書き換えます。

  1. htpasswd形式のファイルがめんどくさいので、管理画面のID/PWを直接指定します
  2. proxy先をgoogleにしてみます
  3. rule設定として、styleを全部削除してみます

deliverance.xml:

<ruleset>
  <server-settings>
    <server>localhost:8000</server>
    <execute-pyref>true</execute-pyref>
    <dev-allow>127.0.0.1</dev-allow>
    <dev-user username="admin" password="admin" />
  </server-settings>

  <proxy path="/_theme">
    <dest href="{here}/../theme" />
  </proxy>

  <proxy path="/">
    <dest href="http://www.google.co.jp" />
  </proxy>

  <theme href="/_theme/theme.html" />

  <rule>
    <drop content="//head/style" />
    <replace content="children:body" theme="children:#content" nocontent="abort" />
  </rule>
</ruleset>

実行

起動します。

deliverance-proxy.exe etc/deliverance.xml

> pwd
c:Projectbuildoutdelivdeliv1DelivTest

> ../bin/deliverance-proxy.exe etc/deliverance.xml

ブラウザで http://localhost:8000/ にアクセスすると、 へんなGoogleの画面になるはず。

あとはtheme.htmlの書き方とか、ruleの書き方を勉強してカスタマイズするべし。


Category(s)
python python
The URL to Trackback this entry is:
http://www.freia.jp/taka/blog/668/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)

« July 2010 »
Mo Tu We Th Fr Sa Su
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
About this blog
Zope, Python, FreeBSD, その他色々について。つまり日記か。
Categories
Agile(XP) (0)
Event (10)
Pattern (0)
その他 (10)
Zope (11)
Memo (0)
(3)
python (17)
Programming (0)
Game (0)
OO (0)
Unix (0)
WZ (0)
work (0)
Plone (11)
Windows (1)
IT-PC (4)
自転車 (0)
TurboGears (0)
ダーツ (0)
JavaScript (0)
旅行 (0)
Web (3)
セキュリティー (1)
Django (0)
LDAP (0)
データベース (0)
vi/vim/gvim (0)
C/C++ (0)
ボドゲ (0)
RoR (2)
pyspa (1)
スタトレ (0)