カテゴリー別アーカイブ: coreserver

title_admin

Rubyをブラウザアクセスで実行【coreserver】

Rubyが入っている場所を調べる

ブラウザからアクセスする場合、ファイルにサーバに保存されているRubyのPATHを記述する必要があるので、まずPATHを調べます。
こちらのページよくある質問 | CORESERVERにも載っていますが、シェルを繋いでコマンドでも調べられます。

$ which ruby
/usr/local/bin/ruby
$ ruby -v
ruby 1.8.5 (2006-12-04 patchlevel 2) [i686-linux]

のような感じでしらべます。

#!/usr/local/bin/ruby
print "Hello"

を拡張子「.cgi」で保存します。 ブラウザでアクセスすると、エラーまたはソースがそのまま表示されます。

#!/usr/local/bin/ruby
print "Content-Type: text/html\n\n"
print "Hello"

httpのヘッダが必要みたいです。 あと、.cgi だと、ローカルで作ったファイルをいちいち .rb から変更しないといけないので、.htaccessで.rbでも動くように設定します。(ここからがとてもハマりました。)

AddHandler cgi-script .rb
AddType "text/html; charset=UTF-8" .rb
DirectoryIndex index.html index.rb index.cgi

結果的にhtaccessの設定はこれでよかったのですが、何度してもエラーになりました。。。

CGIWrap Error: Script Execution Failed

↑こんなのが表示されます。 ググるとCGIは改行コードが CR+LF だとエラーになるとか、そこで改行コードを LF に変更するとうまくいきました。 .cgi のときは CR+LF でエラーにならなかったので、時間がかかりました。。。」

#!/usr/local/bin/ruby

print <<HERE
Content-Type: text/html

<!DOCTYPE html>
<html lang="ja" xml:lang="ja">
<head>
    <meta charset="UTF-8">
    <title>現在時刻表示</title>
</head>

<body>
<p>
    現在時刻表示 <br />
    #{Time.now.strftime("%H 時 %M 分 %S 秒")} です。
</p>
</body>
</html>
HERE

追加したRuby(2.1.1)で実行する

初めからインストールされているRuby以外で実行する時も、手順は同じです。

coreserverのRubyをバージョンアップする方法[2.1.1] のように追加した場合です。

環境PATHに設定した、rubyのパスを調べます。PATHの設定が反映されている場合は、デフォルトのPATH以外のものが表示されるはずです。

which ruby
/virtual/【user_name】/lib/ruby/bin/ruby
ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [i686-linux]

あとは、パスを変更して実行します。

#!/usr/local/bin/ruby
↓
#!/virtual/【user_name】/lib/ruby/bin/ruby

サンプルです。

#!/virtual/【user_name】/lib/ruby/bin/ruby

print <<HERE
Content-Type: text/html

<!DOCTYPE html>
<html lang="ja" xml:lang="ja">
<head>
<meta charset="UTF-8">
<title>別途インストールしたruby2.1.1を実行するサンプル </title>
</head>
<body>
<pre>
HERE

print "バージョン : ",RUBY_VERSION, "<br />"

fib = [1, 1]
(0..10).each {|i|
  fib << fib[i] + fib[i+1]
}
p fib

puts "</pre></body>"
puts "</html>"
ruby

coreserverのRubyをバージョンアップする方法[2.1.1]

Rubyの開発環境の準備を続けておます。coreserverでRubyをブラウザからのアクセスで実行ができるようになりました。
せっかくなので、Rubyを最新バージョンにしたいと思います。現時点でRubyの最新バージョンは『2.1.1』で、coreserverのRubyのバージョンは『1.8.5』になっています。
『1.8.5』のメンテナンスは終了していますし、『1.8.7』と『1.9.2』のメンテナンスも延長されたようですが、2014年6月で終了予定のようです。
coreserverさん自体に2系列を準備していただきたいところではありますが、レンタルサーバーで2系が入っているのは少なそうです。

Ruby2.1.1をcoreserverにインストールする

Ruby公式サイトによると、ダウンロードしたファイルの中に手順が記載されているとのことで見てみましたが私にはさっぱりでしたので、ページ下記のサイト様を参考にさせてもらいました。

詳細を説明する前にとりあえずは手順です。

まず、coreserverにSSH(Tera Termなど)で接続します。
接続が成功していたら、下のような画面になります。

corecer_inst01

次にコマンドを順に打ちます。(8,9,10行目は時間がかかります)

mkdir lib
mkdir lib/ruby
mkdir tmp
cd tmp
wget ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz
tar zxvf ruby-2.1.1.tar.gz
cd ruby-2.1.1
./configure -prefix=/virtual/【ログイン名】/lib/ruby
make
make install
cd
echo "export PATH=$HOME/lib/ruby/bin/:$PATH" >> .bashrc
source ~/.bashrc
echo $PATH
ruby -v

コンソール上に、『ruby 2.1.1~~~』と表示されていたら完成です。

コマンドの説明です。

mkdir lib
mkdir lib/ruby

Ruby本体をインストールするフォルダーを準備します。

mkdir tmp
cd tmp

作業用フォルダーを作り、移動します。
(私は作業フォルダーを作らずにインストールすると失敗しましたので、作られる事をお勧めします)

コンソール上は、『【アカウント名@ホスト:~/tmp】』になっているはずです。

wget ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz

rubyソースの圧縮ファイルをダウンロードします。
最新(その他)のバージョンはこちらから確認します、
ftp://ftp.ruby-lang.org/pub/ruby/

tar zxvf ruby-2.1.1.tar.gz

解答します。ここで『tmp』フォルダに新しくフォルダができているので、その他のバージョンでは確認してください。今回は『ruby-2.1.1』です。

cd ruby-2.1.1

6で出来たフォルダーに移動します。

./configure -prefix=/virtual/【ログイン名】/lib/ruby

解凍したRubyファイルをビルドするための設定です。(タブン)

make

ビルドします。
corecer_inst02
ここでエラーが出ると・・・出ないことを祈りましょう。
(私は一度エラーが出たのですが、初めからやり直した時は出なかったような・・・見落としただけかもしれません)

make install

インストールします。少し時間がかかります。
完了しましたら、先ほど作ったインストールフォルダ『~/lib/ruby』の中に、フォルダができているはずです。できていない場合はやり直してください。
さらに、『~/lib/ruby/bin/』を確認すると『ruby』(rubyの本体)ファイルがあります。

ここまで完了すると、インストールはできています。webからは2.1.1で実行できるはずですが、コンソール用に環境変数(PATH)の設定をします。
コンソールに『ruby -v』でバージョンが表示されますが、今はまだ『1.8.5』と表示されているはずです。また、現在有効になっているパスは『echo $PATH』で表示されます。

cd ~#← cd だけでもOKです。

アカウントフォルダーに戻ります。(SSHでログインした際に初めにいる階層です、一度ログインして繋ぎなおしてもいいです。)

echo "export PATH=$HOME/lib/ruby/bin/:$PATH" >> .bashrc

.bashrc『.bashre』ファイルを作ります。

source ~/.bashrc

『.bashre』ファイルの設定を反映させます。『.bashrc』ファイルは環境変数を設定するファイルの一つです。

以上で終了です。
echo $PATH
で確認しましょう。

echo $PATH
ruby -v

私の環境では、こんな感じに表示されました。

/virtual/【ユーザー名】/lib/ruby/bin/:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin
ruby 2.1.1p76 (2014-02-24 revision 45161)

Rubyにブラウザでアクセス【coreserver】

次回、コンソールからではなくブラウザでアクセスして実行する方法です

Karappo web design room » 【CORESERVERでRails】1. Ruby

title_admin

coreserverを使ってみた感想

coreserverを使ってみての感じたこととかをメモっていきます。 ちなみに、このブログはwordpressをcoreserver(2014/4/22現在)で運用しております。 レンタルサーバーを探すとき、「さくらインターネット」と比較することで基準としています。 なんだかんだ言っても、さくらインターネットが、困ったときにググるとすぐにほしい情報に行き着きますし、サポートも充実しています。また、さくらの管理画面はオリジナルで使いやすいほうだと思います。個人でサイトを運用するのならば、さくらの「スタンダードプラン」で十分ではないでしょうか。 もちろん、アクセスが多い人は、ビジネスプラン、VPS,専用サーバーとアップしていけばいいですね。 話をもどして coreserver です。

coreserverのいいところ

CORE-MINIプラン 200円/月(12カ月まとめて支払い)が、さくらインターネットのスタンダードプランより安いこと 以上・・・ 料金が安くて、php5.4(5.5?)が使えて、MySQL * 10個(PostgreSQLも10個)、CRONも使えるし、SSHもつなげられるので、Rubyのバージョンは1.8.5と終わっていますが、バージョンアップもできるみたいなのでとりあえず、問題ないかな。一度試しに使ってみようと思って選びました。 ***一年たったら他のサーバーに引っ越したいです***

coreserverのいいところ?

SSHをつなぐ時、いちいち管理画面にアクセスしないといけない。 久しぶりにSSHで繋ごうと思うと、繋がらない・・・なぜだろ・・・と、なります。 セキュリティー的にはその方がいいと思うのですが、面倒です。 そしてなぜか、管理画面メニューの中からのSSHの設定が分かりづらいところにあります。 coreserver

coreserverのいいところじゃないところ

ssh複数接続でエラーが出る これが地味に痛いです。 IDEとFTPでSSH接続しただけでも、ブラウザアクセスでエラーになる時があります。 ”CGIWrap Error: Real UID could not be changed!” cgiwrap_error

coreserverでruby

rubyのバーションが、2014/4/22現在で、1.8.5 です。サポートが終わっているバージョンです。
現在最新バージョンは2.1.1です。coreserverにruby2.1.1のインストールと、ブラウザからのアクセスをruby2.1.1で実行させたいので、その方法を紹介します。

coreserverでRubyを実行
coreserverのRubyをバージョンアップする方法[2.1.1]