memorandumsスマートフォン用の表示で見るmemorandums日々の作業ログです。passenger▪️背景1年後期の少人数授業で、小学生にプログラミングを教えるツールとしてコロコロ工作ブロックでいろいろなゲームを作ってもらっています。Languageの一種なのですが、同様の言語のScratchよりゲームに特化していて手軽に始められる特徴があります(小学生でも1時間もあればゲームらしいものができます)。工作ブロックにはenchant.jsの9leap.netのような公開サイトがありません。練習用とはいえ大学生が90分かけて作った作品なのでなかなかの出来の作品もあります。そのまま捨ててしまうのはもったいないので。Railsで簡単なデータ記録用アプリを作っていました。研究室サーバーにのせようPassengerの設定をしてみたもののうまく動作しない。以前、サーバーがCentOSのときに導入したことがあるのですが、そんなに苦労した記憶はなく。1日くらいあれこれ試行錯誤していました。結論から言いますと、VirtualHostの動作や設定方法を知らなかったのが原因でした。Passenger導入の記事はRails界隈の方がわかりやすく書いてくださっていますのでそちらを参考にさせていただきまして。Passengerが吐き出すモジュールやVirtualHostの設定部分は書かれているのですが、既存のconfファイルの記述をどうすればいい、と書いているページはなかったので。私は日頃からrubyやrailsを追っかけているわけではありませんので、たまたまうまくいったという情報になります。参考にされる場合はそういう観点でご覧いただければと思います。rubyとrailsとpassengerはそれぞれ現時点の最新です(だと思います)。railsアプリを作成して、rbenv環境のgemでpassengerをinstallします。このあたりはぐぐるとたくさん記事があります。passengerの導入アプリ(passenger-install-apache2-module)を実行すると、モジュールとVirtualHostの設定が吐き出されますので、それを既存のconfファイルに追記します。※ちなみに、centos系の手順記事にはsudoをつけるように書いていますが、rbenv環境では自分のホーム以下にインストールされますのでsudoは不要です。つけても影響はないと思いますが。passengerしてもroot権限のディレクトリは削除されないと思いますので残骸が残ります)具体的な手順はここからになります。いつもながら前置きが長くてすいません。Serverなので普通のOSXのapacheとは設定ファイルの位置が異なります)。その他の設定ということで、/Library/Server/Web/Config/apache2/otherにrails.confというファイルを新規作成して、そこにpassengerのモジュール定義とvirtualhostの定義を書きました。以下がrails.confの中身です。*:80」を入れることと「研究室HPを公開しているサーバー名」の定義のところです。passenger導入エントリーには「Railsアプリ用のサーバー名」のVitrualHostの記述方法は書かれているのですが、もともと公開していたサーバー名のことには触れられていませんでした。いいますが、あとでわかったのですがVirtualHostを定義するときの基本なんですね。それを知らなかったためはまったということです。おおもとのApacheの設定ファイル(httpd_server_app.conf)にある、ServerNameとDocumentRootはコメントアウトします。ここが残っていると「Railsアプリ用のサーバー名」の定義は反映されないようです。内部の仕組みはわかりませんが、Apacheのドキュメントには以下のように書かれていました。それでピンときた次第でした。ブロックを作らなければなりません。先頭に置いて、デフォルトホストとして動作するようにします。うまく動いてよかった。こんなこと書いたエントリーは見当たらなかったので普通はこんなところでつまづかないのでしょうね。»プロフィールid:ke_takahashiソフトウェア開発、工作、面白ガジェットに興味があります。(1)はてなブログをはじめよう!ke_takahashiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。