さくらインターネットのレンタルサーバーでRuby:RMagickを使う。
ホスティングで気軽にRmagickを使いたい。なんてユーザーはそんないないだろうけど試してみる。
さくらさんはImageMagickは全プランで入ってるそうなので、どのホスティングプランでもいけそうです。
http://faq.sakura.ad.jp/faq/1032/app/servlet/qadoc?000071
GD ・ ImageMagick(PerlMagick)は使えますか?
はい、全プランでご利用できます。
ImageMagick のインストールパスは /usr/local/bin となります。
ImageMagick 付属のプログラム「convert」のコマンドパスは /usr/local/bin/convert となります。
さくらの仮登録完了後に送られてくるサーバー情報を元にSSHログイン
homeディレクトリ以下にフォルダを一つ挟んで環境を構築しようと思います。
ディレクトリの名前はmineにします。
/home/{User}/mine
作業はbashで行います。
1 2 3 4 5 6 7 8 9 10 |
<textarea class="ruby" cols="60" rows="5" name="code"> bash mkdir mine mkdir -p mine/sources cd mine/sources/ wget http://rubyforge.org/frs/download.php/45906/rubygems-1.3.1.zip unzip rubygems-1.3.1.zip cd rubygems-1.3.1 ruby setup.rb --prefix=/home/{User}/mine </textarea> |
これでrubygemsのインストールは完了しました。
RubyとGemのパスを通しましょう。
1 2 3 4 5 6 7 8 |
<textarea class="ruby" cols="60" rows="5" name="code"> vi ~/.bachrc # export RUBYLIB=/home/{User}/mine/lib # export GEM_HOME=/home/{User}/mine/lib/rubygem # MINE_PATH=/home/{User}/mine/bin # PATH=$MINE_PATH:$PATH source ~/.bashrc </textarea> |
さくらインターネットでインストールする場合は必ず
環境変数[“RB_USER_INSTALL”]をtrueにしましょう。
そうでなければインストールできません。
1 2 3 4 |
<textarea class="ruby" cols="60" rows="5" name="code"> export RB_USER_INSTALL=true gem18 install rmagick </textarea> |
無事成功。
1 2 3 4 5 6 |
<textarea class="ruby" cols="60" rows="5" name="code"> $ gem18 install rmagick Building native extensions. This could take a while... Successfully installed rmagick-2.9.1 1 gem installed </textarea> |
テストしてみます。
1 2 3 4 5 6 7 8 |
<textarea class="ruby" cols="60" rows="5" name="code"> $ irb irb(main):001:0> require "rubygems" => true irb(main):002:0> require "RMagick" => true irb(main):003:0> exit </textarea> |
ちなみにApache上でRubyCGIで動作させるためには.htaccessファイル編集する必要があります。
.htaccess
1 2 3 4 5 6 |
<textarea class="ruby" cols="60" rows="5" name="code"> vi ~/www/.htaccess #AddHandler cgi-script .cgi .rb #setenv RUBYLIB /home/ilinks/mine/lib #setenv GEM_HOME /home/ilinks/mine/lib/rubygems </textarea> |
rubyファイルはこんな感じで。。
ruby_test.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<textarea class="ruby" cols="60" rows="5" name="code"> #!/usr/local/bin/ruby print "Content-type:text/html\n\n" $LOAD_PATH.push('/home/{User}/mine/lib') $LOAD_PATH.push("/home/{User}/mine/lib/rubygems/gems/rmagick-2.9.1/lib/") require 'rubygems' require 'RMagick' require 'cgi' include Magick .. .. .. </textarea> |