rubyインストール後のアクセス方法について

WebサーバーおよびDBサーバーの基本的な設定や利用法についての話題はこちらへどうぞ。
フォーラムルール
QNAP Club Japanのご利用に際しては、当サイトの目的利用規約プライバシーポリシーをご確認頂き、同意の上で投稿ください。

rubyインストール後のアクセス方法について

投稿記事by yoshiana » 2011/2/04(金) 10:59

皆様、はじめまして。
当方、ts-219p+をファイルサーバとして愛用しています。

qnap製品は多機能で色々な用途で使用可能とは知っておりましたが、sshでログイン後cuiで操作、に不安が有り(なにせwindowsしか使ったことなく)、写真などのファイルも既に入っていた為、ファイルサーバのみで使用しておりました。

しかし何かもったいなく感じ、WEBサーバ(社内用)として機能させてみたいなと思うようになり、linuxの練習もかねて、色々といじっている次第です。

当方は仕事上、社内システムの企画を行なっていまして、今の仕事上のシステム開発環境(windows)でrubyを使用しています。

そこで本題なのですが、qnapにrubyを搭載し、社内システムの構築が出来ないかと思い、人様のブログを参考にしながらrubyとrubygemsのインストールを行ないました。
しかし、webフォルダにファイルを上げ、ブラウザでアクセスしたら403エラーで帰ってきます。

(処理)内容は分かっているけど処理しないよ、っていう実行権限がらみなのは理解しているのですが、どこをどう設定すればいいのか分かりません。

無知が一番の理由なのは理解していますが、これ(WEBサーバ構築)をきっかけにlinux(cui)に少しでも近づけられればと思います。
初歩過ぎる質問だと痛感しておりますが、何卒ご教授願います。
※情報不足等があればご指摘願います。

------------以下当方作業内容----------------
以下のブログを参考にさせていただき、rubyのバージョン違い(当方ruby-1.8.7-p330)以外、同じことを行ないました。
*ttp://d.hatena.ne.jp/kamataro/20101018/1287423734

ファイル名 index.cgi
内容:
  #!/usr/bin/env ruby
  print "Content-Type: text/html\n\n"
 print "<html>"
 print "<head><title>test</title></head>"
 print "<body>"
 print "<p>hello</p>"
 print "</body>"
 print "</html>"

defaultのwebフォルダ(index.phpがあるところ)にftpでアップロード
同じフォルダに.htaccess(defaultでindex.cgiを見に行くように設定)をftpでアップロード
index.cgiをパーミッション705へ変更(http 403でダメ)
index.cgiをパーミッション777へ変更(http 403でダメ)
やけになり拡張子を.rbへ変更(テキストのまま表示)
冷静になって拡張子を.cgiに戻す(今ここ)

確認の為sshでログイン後、rubyへのアクセス確認
# which ruby
/opt/bin/ruby
# ruby -v
ruby 1.8.7 ・・・(省略)
# /opt/bin/ruby -v
ruby 1.8.7 ・・・(省略)
#/usr/bin/env ruby -v
ruby 1.8.7 ・・・(省略)
# which gem
/opt/bin/gem
# gem -v
1.3.7
yoshiana
 
記事: 3
登録日時: 2011/2/04(金) 10:00
QNAP Product: TS-219 Series

Re: rubyインストール後のアクセス方法について

投稿記事by yoshiana » 2011/2/04(金) 11:04

不足分追記です。
アクセスしたアドレスはhttp://ホスト名/。
webサーバーは有効確認。
indexファイルを元のindex.php(.htaccessも修正、若しくは削除)にするとちゃんと表示されます。
yoshiana
 
記事: 3
登録日時: 2011/2/04(金) 10:00
QNAP Product: TS-219 Series

Re: rubyインストール後のアクセス方法について

投稿記事by yoshiana » 2011/2/07(月) 11:31

自己レスです。
初linuxだからこそ色々いじってみてたくさんのことを学べました。

まず、rubyとrubygemsは既に記載してあるようにインストール完了しました。
その後のapacheの設定で、アクセスと実行を確認したので、本スレのタイトルは無事に完了したことをご報告いたします。

以下、私のようなlinux初心者の何かの参考にでもなればと思い、簡単に今までの流れを記載します。

1.apacheの設定と確認
 apacheの場所
  /usr/local/apache
 apacheの設定ファイルの場所
  /usr/local/apache/conf/apache.conf

 設定ファイル内、加筆修正内容
  <Directory />と記載がある下のOptionsに ExecCGI をついか。
 apacheの再起動
コード: 全て選択
/etc/init.d/Qthttpd.sh restart


2.rubyプログラムのshebangの記載方法
 rubyのみであれば「#!/usr/bin/env ruby」で動きました。
 私は、フレームワークはsinatraを使っていますが、よくある「#!/usr/bin/env ruby」ではsinatraをrequireしたときにsinatra側から「rubyなんてenvないよ!」エラーで止まってしまう為、/opt/bin/rubyと場所を記入しました。

3.apach経由webrickの起動とアクセス
 rubyのみであればapacheで設定したrootにappをアップしてアクセスすると表示されます。(デフォはhttp://localhost/で表示)

 sinatra使用の私の場合、一度apacheのroot(http://localhost/)でアクセスしwebrickを起動させて、webrickのroot(http://localhost:4567/)で起動確認しました。

4.リバースプロキシの設定と確認
 今まさにここに居るのですが、既に確認できたことと、これからチャレンジするものを記載します。

 既に確認できたこと
  apache設定ファイルに以下のモジュール読込を加筆
コード: 全て選択
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


  そして以下のようにリバース元と先を指定
コード: 全て選択
ProxyRequests Off
ProxyPass / http://localhost:4567/app/
ProxyPassReverse / http://localhost:4567/app/


  これでapacheのrootへアクセスがあったらhttp://localhost:4567/app/へリバースする設定が完了。

 これからチャレンジするもの
  apacheのrootとwebrickのrootをポート違いにしてリバースしたい。
  http://localhost:80/ => http://localhost:4567/
  何故か出来ませんでした。勉強中です。(ポート違いでの複数webserver起動はできない?無知です。勉強します。)

以上です。
これからも、もし邪魔でなければ、発展があったら書き込みます。
いらねーよ!と感じる方はレス下されば助かります。

※wiki形式で書き込むのはこのforumが初で、色々と読みづらい見づらいがあるかと思います。
そのときは「ここはコレ使え!」とか「これの使い方間違っているぞ!」とか教えて頂ければ心からありがたいです。
それと、過去のことを思い出しながら書いているので、「え!?ここ間違ってない??」とかもあると思います。そのときも教えてください。

駄文を呼んでいただける皆様に感謝。
yoshiana
 
記事: 3
登録日時: 2011/2/04(金) 10:00
QNAP Product: TS-219 Series


Return to Web&DBサーバー

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]

cron