質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.21%

ローカル開発環境上のRubyファイルの出力結果をブラウザ上で確認することができません…

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 3,151

T.N.

score 22

■環境
PC : mac OS X Yosemite バージョン 10.10.05 
Vagrant : Universal (32 and 64-bit)
VirtualBox : 5.0.4 for OS X hosts
CentOS : 6.5
Ruby : ruby 2.2.2p95
PHP : PHP 5.6.13

■やりたいこと
ターミナル上で /var/www/html 直下に作成した index.rb ファイルの出力結果をブラウザ上で確認したい。

■現状
ターミナルで /var/www/html 直下に index.rb というファイルを作成したのですが、
ブラウザ上で特定のIPアドレス(192.168.33.10)を入力しても出力結果が表示されません。
※「Apache 2 Test Page powered by CentOS」と上部に記載されている画面が表示されます。
※ catコマンドを入力するとターミナル上では内容を確認できます。

同階層に index.html や index.php を作成した場合は、
問題なくブラウザ上で実行結果を確認することができました。
※他ファイルを削除して同階層には1つのみファイルが存在する状態にするとブラウザ上で確認できました。
同階層に index.html や index.phpがある場合、どちらが表示されるのかが決まるロジックが分かっておりません。

また、例えば同階層に複数のファイルを作成したりディレクトリを作成した場合、
192.168.33.10にアクセスしても1つのファイルしか見れないのではと考えているのですが、
複数のファイルやディレクトリを見れるようにする場合、どのような方法を取れば良いのでしょうか。

※MAMPを使った場合は、localhostにアクセスすると複数ファイルがあったりディレクトリが複数あったりしても
ブラウザ上にリスト形式で表示されるため、問題なく出力結果をブラウザ上で確認できました。

初歩的な質問で恐れ入りますが、ご教示いただけますと幸いです。
よろしくお願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

uyamikさんの疑問に思われていることのほとんどは、Apacheの設定ファイルである httpd.conf を詳しく見ると解決します。

1) Ruby のプログラムが実行されない理由

ターミナルで /var/www/html 直下に index.rb というファイルを作成したのですが、
ブラウザ上で特定のIPアドレス(192.168.33.10)を入力しても出力結果が表示されません。
これは、rubyのプログラムをApache上で実行するための設定がされていないからです。

それに対して、PHPを実行するためのモジュールは、下記のようにロードする設定が httpd.conf 内(136行目、139行目付近)に書かれています。
136: LoadModule php5_module 〜

139: AddType application/x-httpd-php .php .phtml .html

ですので、rubyプログラムを同様に実行したいのであれば こちら を参考にして設定を修正してみてください。

2) デフォルトで実行されるファイル名

httpd.conf の 258行目付近を見ると以下の設定がありますが、これが「http://192.168.33.10/」のようにファイル名を省略したURLでリクエストを行った場合にどのファイルが実行されるか(その優先順位も)を示しています。
258: DirectoryIndex index.html index.php

3) ブラウザ上でファイルリストを表示させる設定

ブラウザ上にリスト形式で表示されるため、問題なく出力結果をブラウザ上で確認できました。
これも、httpd.conf の設定によります。
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
               ↑これを追加するとファイルリストが表示される
</Directory>

MAMP では標準でファイルリストが表示される設定になっていたかもしれませんが、通常はセキュリティ上の理由で非表示にします。

ファイルリストを非表示にしたとしても、(アクセス制限を設定していない限り)ファイル名を直接指定すれば表示できます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/27 10:33


    ■環境
    PC : mac OS X Yosemite バージョン 10.10.05
    Vagrant : Universal (32 and 64-bit)
    VirtualBox : 5.0.4 for OS X hosts
    CentOS : 6.5
    Apache:2.2.15 (Unix)
    Ruby : ruby 2.2.2p95
    PHP : PHP 5.6.13

    ■やりたいこと
    VirtualBox上にインストールされたCentOS上のApacheのドキュメントルートに関して、
    ターミナル上で /var/www/html 直下に作成した index.rb ファイルの出力結果をブラウザ上で確認したい。

    ■現状
    VirtualBox上にインストールされたCentOS上のApacheのドキュメントルートに関して、
    ターミナルで /var/www/html 直下に index.rb というファイルを作成したのですが、
    ブラウザ上で特定のIPアドレス(192.168.33.10)を入力しても出力結果が表示されません。
    ※「Apache 2 Test Page powered by CentOS」と上部に記載されている画面が表示されます。
    ※ catコマンドを入力するとターミナル上では内容を確認できます。

    また、質問当初は、同階層に index.html や index.php を作成した場合は問題なくブラウザ上で
    実行結果を確認することができたのですが、Apacheの設定ファイルをいじったら、Rubyの場合と同様に
    「Apache 2 Test Page powered by CentOS」と上部に記載されている画面が表示されるようになりました。
    ※いじった箇所をもとに戻してみたのですが、状況は変わりませんでした…。

    【Apache2のいじった箇所】
    ・/private/etc/apache2/httpd.confの157行目のコメントを外した。  
     ※157行目 : #Loadmodule cgi_module libexec/apache2/mod_cgi.so

    【Apache2の設定ファイル】
    http://notepad.cc/gepeqa70

    ■その他
    (上記コメントにも記載したのですが)MAMPではPHPにしか対応できず、
    Vagrant/VirtualBox/CentOS/Apacheを用いた環境はPHPやRubyなど複数言語に対応できるのであれば、
    MAMPは今後使用せず、Vagrant/VirtualBox/CentOS/Apacheを用いた環境のみで開発を行いたいと考えております。

    また、「Mac上にインストールされた素のApache(HomebrewかMackPortsでインストール)」というのも、
    意識的にインストールしたものではなく、Ruby/Ruby on Railsをメインとして開発するにあたり必要なさそうなので、
    削除しても問題ないのではと考えております。


    どうかよろしくお願いします。

    キャンセル

  • 2015/10/04 00:11

    # 推測混じりで書きますので、違っていたり、万一失礼な発言をしてしまった場合でも、決して悪意はありませんので、率直にご指摘ください。

    まず、uyamikさんの目的についてですが、業務上の必要に迫られてというよりは、スキルアップ(もしくは趣味)のための「学習」が目的なのだろうと理解しているのですが、合っていますか?

    色々と考えて見たのですが、もしそういう目的なのであれば、「急がば回れ」の諺通りに、一旦環境を整理してから再チャレンジすることを強くオススメ致します。

    というのは、Vagrantで構築した「CentOS」上に開発環境を構築したいとおっしゃりながら、実際には他のApacheの設定ファイルの方に話しがそれてしまうなど、混乱の元だからです。
    それに、Mac向けアプリの開発でない限り、仮想サーバ上で開発した方が色々な意味で得策なので、紛らわしいツールやサーバなどは、MAMPも含めて一掃(アンインストール)してしまい、その分のHDD空き容量を仮想環境に割り当てた方がずっとマシです。

    それで、手始めに、MAMPとhomebrewでインストールしてしまったApache等をアンインストールしてください。
    また、もし支障がなければ、Vagrantで構築済みのCentOSも一旦削除して、正しい手順にて環境を再構築してはいかがでしょうか?

    「ドットインストールのレッスン」は非常に優れていますが、あくまでもプログラミングのレッスンが目的なので環境構築の方法が必ずしも一般的かつ汎用的なものではないようなので、その(ある意味特殊な)環境を使いながら他の参考書も使用すると、インストール先のパスが異なるなど混乱の引き金にもなりかねないですし、環境構築の手順が「run.sh」のようにスクリプト化されてしまっていると、テスト環境を準備するということがどういうことなのかを正しく学ぶことも出来ませんので。

    もし必要であれば、目的達成までお供致しますので、ぜひご検討ください。

    なお、今後のためにご指摘しておきますが、「MAMPではPHPにしか対応できず」ということな無いです。
    PHP向けの環境構築に際し、毎回ApacheやMySQLを1つずつ手でインストールするのは手間が掛るので、一括でインストール出来るようパッケージングされているだけで、インストールされるApacheはあくまでも普通のApacheです。
    ですから、たとえMAMPでインストールされたApacheであっても、設定を適宜追加・修正すればRubyでの開発にもそのまま利用できます。


    キャンセル

  • 2015/10/06 07:41

    ご回答いただき、ありがとうございます!!

    仰るとおり、業務上の必要に迫られてではなく、
    スキルアップのための学習が目的です。

    開発環境に関する理解も浅いので、
    MAMPとhomebrewでインストールしてしまったApache等を一旦アンインストールして、
    開発環境についてきちんと理解した状態での再構築を試みます。

    また、MAMPでも他言語に対応できるのですね。
    Apacheの設定に関する理解も浅いのでもっと調べてみます。

    目的達成までご協力いただけるとのこと、誠にありがとうございます!
    どうにも先に進めなくなってしまったらまた質問させていただけますと幸いです。
    どうかよろしくお願いいたします!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • PHPに関する質問
  • ローカル開発環境上のRubyファイルの出力結果をブラウザ上で確認することができません…