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

Radiant CMS でサイトの再構成

所属も変わったことだし、個人用の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をアップデートして、1.87にあげたら、radiant(というかRuby on Rails関係)が動かなくなってしまった。深く追求はしないまま、1.37に戻す。

Last modified:2011/08/06 14:59:53
Keyword(s):
References:[frontpage] [Mac OS X Serverで作る 小さな計算機室]