kwLabsのSandboxをサブディレクトリでのSymfonyで運用してみる

最近、新規開発があんまりできておらずもっぱらサイトの内部的な整備に日々格闘しています。で、ようやく後回しになっていたkwLabsに着手。

砂場に30ページくらいあってちょっとデザインを変えると30ファイル直さないといけなかったりして、ある程度はviewのパーツ化はしていたのだけどそれでも結構面倒だったので思い切ってphpのSandboxはsymfonyで動かすことにした。

php以外の言語でも書いたりするので、symfonyはサブディレクトリで運用するとして/s/sandboxがPHP用の砂場となった。

AliasはってRewriteBaseすればいいんだろ。とタカをくくっていたが以外と苦戦したので手順を書いてみる。

/projectnameにおきたいとする

  1. symfonyプロジェクトをドキュメントルート(/path/to/docroot/)とは関係のないところで作る(/path/to/sfroot/)とする
  2. httpd.confを修正しAliasをはる
    • Alias /projectname /path/to/sfroot/web
  3. RewriteBaseをなおす
    • /path/to/sfroot/web/.htaccessを編集し下記を有効にする
      RewriteBase /projectname
  4. settings.ymlをなおす
    • /path/to/sfroot/apps/appname/config/settings.yml
      all:
      .settings:
      relative_url_root: /projectname
      web_debug_web_dir: /../sf/sf_web_debug
    • なぜかDebug用のcss/jsのリンクがおかしくなったのでweb_debug_web_dirを設定
  5. ドキュメントルート直下のcss/jsを参照するときは..を使って相対パスで指定する
    • (ドキュメントルートからの絶対パスの指定がわからない)
      stylesheets:    [/../css/main]

Symfony 1.1.5を使っているのだが、なぜかdebug用のcss/jsのリンクがおかしかったり、ドキュメントルート直下のcssの指定がわからなかったりして苦労した。いまだにview.ymlの細かい設定方法とかがわからない。cookbookじゃなくてちゃんとしたAPIドキュメントみたいのがほしい。

ちなみに、メンテナンス中になっているのはいつのまにかまともに動いていないページだったりする。今回は機械的な移植対応でおのおのを見直す余力はないのでしばらく放置する予定。