Create  Edit  Diff  Mac OS X Serverで作る 小さな計算機室  Index  Search  Changes  RSS  Login

小さな計算機室 - radiantmemo Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

所属も変わったことだし、個人用のWEBサイトをそろそろ更新しようと思い、RoR上で動作するRadiant(0.81)というCMSを(Snow Leopard Server上で)使ってみることにする。なんだかんだとあれこれgemやらextention/pluginの類を導入しなければならなくなった。
以下は、導入時にちょっと困った際のメモ。

!!!MySQL
OS X Server(10.6.3)にインストールされているMySQLは、それと連携するソフトのコンパイルに必要なファイルが不足しているらしいので、Apple Open Sourceのhttp://www.opensource.apple.com/release/mac-os-x-1063/に行って、MySQL-53のバイナリをダウンロードし、それをルートファイルシステム上に展開( tar -zxvf .... -C / )。

!!!Passenger

!!!!! ver 2まで
gemでインストール後、
passenger-install-apache2-module
する段になって、あれこれエラーが出て止まる。

とりあえず、先に進めるため、/Library/Ruby/Gems/1.8/gems/passenger-2.2.14/の中のRakefileのフラグのところを
EXTRA_CXXFLAGS = "-Wall #{OPTIMIZATION_FLAGS} -I/usr/include/c++/4.2.1/x86_64-apple-darwin10/"
に変更。

lib/phusion_passengerの中のplatform_info.rbを編集して、-arch ppc64を消しておく。
architectures = ["-arch i386 -arch x86_64 -arch ppc"]

!!!!! ver 3以降
その後、passengerのバージョンが新しくなったので(3.0.X)、対処法が若干変わった。

/Library/Ruby/Gems/1.8/gems/passenger-3.0.8/buid/config.rbのEXTRA_CXXFLAGSの項目の中に
  -I/usr/include/c++/4.2.1/x86_64-apple-darwin10/
を追加。

/Library/Ruby/Gems/1.8/gems/passenger-3.0.8/lib/phusion_passenger/platform_info の中の apache.rb の200行目あたりところのarchitecturesの項目から ppc64 の項目を削除
  if output =~ /Mach-O fat file/ && output !~ /for architecture/
            architectures = ["i386", "ppc", "x86_64"]


!!!galleryとattachment_fuをインストール
Radiant WEBアプリのルートに移動
git clone git://github.com/technoweenie/attachment_fu.git vendor/plugins/attachment_fu
git clone git://github.com/hairballopolis/radiant-gallery.git vendor/extensions/gallery

config/environment.rbに
config.after_initialize do
    ...
    Radiant::Config["gallery.storage"] = "file_system"
  end
を追加。そして、
/usr/bin/rake RAILS_ENV=development radiant:extensions:gallery:install

!!!Copy_Moveをインストール

git clone git://github.com/pilu/radiant-copy-move.git vendor/extensions/copy_move
rake radiant:extensions:copy_move:update
rake radiant:extensions:copy_move:migrate
特にエラーは出ないが、動かない・・・。代わりに、Drag_Order extensionを入れる。
(その後、Radiant 0.90rc3上で試したところ、Copy_Moveはちゃんと動作した)。

!!!Paperclippedをインストール

結局、galleryは使わないことにした。attachment_fuは外して、Paperclippedをインストール
script/extension install paperclipped
rake production db:migrate:extensions
rake production radiant:extensions:paperclipped:update

加えて、
config/environment.rbに
  config.after_initialize do
     ...
     Radiant::Config["assets.url"] = "/:class/:id/:basename:no_original_style.:extension"
     Radiant::Config["assets.image_magick_path"] = "/opt/local/bin"
   end
を追加。

他のextensionなどを入れたり消したりしているうちに、Paperclippedで使うテーブルのひとつ(page_attachments)を、誤って消してしまったので、手作業で作成:
mysql> use データベース名 ;
mysql> create table page_attachments(asset_id integer, page_id integer, position integer) ;

その後、Radiantを0.91に上げたところ、Bucketが表示されなくなったので
git clone git://github.com/saturnflyer/paperclipped.git vendor/extensions/paperclipped
rake production db:migrate:extensions
rake production radiant:extensions:paperclipped:update
して、別フォークのpaperclippedを入れてみた。


!!!Apache+passengerでの運用
DocumentRootとは別の場所にRailsアプリケーションを置くことができるというので、Apacheの設定ファイルに
RailsBaseURI /home
を追加して、
ln -s {Radiantアプリの格納ディレクトリ}/public  {DocumentRoot}/home
とやって、そこにシンボリックリンクを張っておく。
確かに、こうすると、Radiantは一応動作するが、管理画面でページの階層が3段以上になると、うまく動作しない(Radiantのpublic動作がDocumentRootであることを前提に、コーディングされている箇所がある)。

仕方ないので、DocumentRootを{Radiantアプリの格納ディレクトリ}/publicに設定して運用。

passengerを動かしているホストで、WebDAVがうまく動作しない症状が出る。
認証はうまくいくようだが、その後、
webdavfs_agent[15827]: network_mount: URL is not a collection resource (directory); file:
/SourceCache/webdavfs/webdavfs-293/mount.tproj/webdav_network.c; line: 2868
のようなメッセージをsystem.logに残して、先に進めない。
mod_passengerを外すと、何事も無かったように動作する。

!!!Rubygems!!!RubyGemsではまる

何気なくRubyGemsをアップデートして、1.87にあげたら、radiant(というかRuby on Rails関係)が動かなくなってしまった。深く追求はしないまま、1.37に戻す。