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

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

ただいまの
回答率

88.20%

Mac OS XのApacheでRedmineを立てたい

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,191

mametaro3

score 13

社内限定で空いているMacにRedmineをインストールして使おうと思っています。
自動的にバックアップとったり、カスタマイズするのにMacのApacheがよいと思い奮闘中です。
しかし、Apacheの知識はおろか、Rubyの知識もなく、今回はとても初歩的な質問になってしまうかと思います。
よろしくお願いいたします。

(BitnamiやDockerなどで試しに構築したりはしましたが、Macで運用することに決めました。)

前提・実現したいこと

MacOSのApacheでRedmineを動かしたいです。
ApahceからPhusion Passengerを起動させられないことがブラウザに表示できない原因のように思います。

質問は2つです。

  • Redmineを動かすためにはsudo apachectl restart以外にも必要なコマンドはありますか?
    上記だけだと、ブラウザの表示が下記のようになってしまいます。
Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.


同時にテスト用に立てたtest.localも動かなくなってしまいます。
後述のpassenger.confを退避して読み込ませなくするとtest.localは動きますが、redmine.localは動きません。

passenger start --environment production


逆に上記を実行して明示的にpassengerを起動させると、redmine.localでも表示されます。

しかし、Apacheにpassengerの記述があればRailsが動かせると聞いているので、passengerを起動させずにsudo apachectl restartのみ実行すればよいのではと考えています。

===

  • httpd-vhosts.confの設定は正しいでしょうか? 個人的には下記箇所が怪しいと思っています。
    DocumentRoot /Users/{ユーザー名}/Sites/redmine/public
    RailsBaseURI /Users/{ユーザー名}/Sites/redmine


正直RackBaseURIRailsBaseURIの違いがあまりわかっていません。。

発生している問題・エラーメッセージ

ブラウザを開くと下記のように表示されます。

Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.


RailsBaseURI /Users/{ユーザー名}/Sites/redmineを削除して明示的にpassengerを起動させると、http://redmine.local/でもアクセスできます。

該当のソースコード

 httpd-vhosts.conf 

<VirtualHost *:80>
    RailsEnv production
    PassengerEnabled on

    DocumentRoot /Users/{ユーザー名}/Sites/redmine/public
    RailsBaseURI /Users/{ユーザー名}/Sites/redmine
    ServerName redmine.local

    ErrorLog "/Users/{ユーザー名}/Sites/redmine/log/error_log"
    CustomLog "/Users/{ユーザー名}/Sites/redmine/log/access_log" common

    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

    <Directory /Users/{ユーザー名}/Sites/redmine/public>
        Require all granted
        Options FollowSymlinks Includes
        AllowOverride all
    </Directory>
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot /Users/{ユーザー名}/Sites/test
    ServerName test.local

    <Directory /Users/{ユーザー名}/Sites/test>
        Require all granted
        DirectoryIndex index.html
        Options Includes
    </Directory>
</VirtualHost>

 passenger.conf 

LoadModule passenger_module /Users/{ユーザー名}/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /Users/{ユーザー名}/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/passenger-6.0.2
  PassengerDefaultRuby /Users/{ユーザー名}/.rbenv/versions/2.6.0/bin/ruby
</IfModule>

試したこと

http://guide.redmine.jp/RedmineInstall/
こちらの10番まで終了しています。

https://qiita.com/haneri/items/7110ce24e74f9566de8b
こちらを参考にVirtualhostの設定がされることも確認しました。
test.localというホスト名でtest/index.htmlといったような単純なファイルを読み込んでくれることも確認済みです。

passenger.confを読み込ませなければ、今もtest.localにアクセスできることが確認できます。

補足情報(FW/ツールのバージョンなど)

  • Server version: Apache/2.4.33 (Unix)
  • Mac OS X(High Sierra)
  • MySQL
  • Redmine(4.0.3.devel)
  • ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin17]
  • Rails 5.2.3
  • Phusion Passenger

apache2のエラーログ

[Thu Apr 11 20:35:47.153485 2019] [proxy:error] [pid 25802] (61)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:3000 (localhost) failed
[Thu Apr 11 20:35:47.153527 2019] [proxy_http:error] [pid 25802] [client 127.0.0.1:55156] AH01114: HTTP: failed to make connection to backend: localhost, referer: http://redmine.local/

その他の参考にした記事

  • http://weathercook.hatenadiary.jp/entry/20100821/1282412492
  • https://www.phusionpassenger.com/docs/tutorials/deploy_to_production/deploying_your_app/oss/ownserver/ruby/apache/
  • https://qiita.com/haneri/items/7110ce24e74f9566de8b
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • CHERRY

    2019/04/11 22:38 編集

    httpd-vhosts.conf の設定が、 passenger 用と proxy する方法が混在しているようですが、何を参考にされましたか?

    キャンセル

  • mametaro3

    2019/04/12 15:54

    いろいろなwebサイト参考にしすぎていろいろな枝を生やしてしまったようです。。ベースは上記2つですが、2つでは完了(RailsやPassengerが起動)しなかったので、たくさんの実験の末ごちゃまぜになってしましました。

    キャンセル

回答 1

0

Service Unavailable

Apache から先の接続先のサーバに繋がらない時のエラーですね。


passenger で稼働させるのであれば、 ProxyPass と ProxyPassReverse の設定は、不要です。

また、RailsBaseURI は、DocumentRoot を Rails の public ディレクトリにして、 http://redmine.local/ で、Railsアプリにアクセスするのであれば、 RailsBaseURI  / になります。 
( RailsBaseURI を設定しない場合のデフォルトは、 RailsBaseURI  / が指定されたはずです。 )

念のため、 /usr/sbin/apachectl configtest を実行して、設定ファイルに間違いがないか確認してから、 apache を起動させてアクセスしてみてください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/04/12 18:12 編集

    おそらくrbenvのラッパープログラムというものだと思います。
    production.logに変更はありません(動いていません)でした。

    ブラウザは
    ```
    このページは動作していません redmine.local からデータが送信されませんでした。
    ERR_EMPTY_RESPONSE
    ```
    というメッセージに変わりました。

    ちなみに、他のディレクトリもバーチャルホストを立てていますが、
    ```
    LoadModule passenger_module /Users/{ユーザー名}/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
    <IfModule mod_passenger.c>
    PassengerRoot /Users/{ユーザー名}/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/passenger-6.0.2
    PassengerDefaultRuby /Users/{ユーザー名}/.rbenv/versions/2.6.0/bin/ruby
    </IfModule>
    ```
    が上記の記述あるだけでも、こちらもブラウザでの表示が上記のように「このページは動作していません」になります。。

    キャンセル

  • 2019/04/12 20:42 編集

    macOS のサーバー環境では、rbenv 使ってないので、ちょっと確認できないのですが...

    可能性のひとつとしては、` /Users/{ユーザー名}/.rbenv/ ` 以下のディレクトリが、apache のユーザーである _www で、アクセスできないため、passenger か ruby の起動でエラーになっている可能性があるのかもしれません。

    キャンセル

  • 2019/04/12 20:55

    なるほど、、そうかもしれません。

    https://teratail.com/questions/105459
    上記のような状態な気がしてきました。。

    権限付与してだめであれば、インストールし直してみることにします。

    キャンセル

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

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

関連した質問

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