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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

4778閲覧

Passenger(Rails)とPHPを共存させる方法について伺います。

hagetak

総合スコア16

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2015/08/18 15:36

編集2015/08/20 04:19

Passenger(Rails)とPHPを共存させる方法について伺います。
現在、さくらのVPSを借り、ウェブサービスを何とか立ち上げることができました。(hogehoge.com ドメイン取得済み)
そこで、表題の件で質問を致します。今後アクセスの増加が見込めるまで、同一VPS内にTracを積みたいと考えています。

共存させるために、調べてみるとVirtualHostというものを使うことがわかりましたが、理解しているつもりなのですができません。

目標

100.100.100.100:80 -> hogehoge.comへ飛ぶように
hogehoge.com -> hogehoge.comへ飛ぶように
100.100.100.100:8080 -> 100.100.100.100:8080/tracへ飛ぶように

#####httpd.conf

httpd.conf

1<VirtualHost *:8080> 2 ServerName 100.100.100.100:8080/trac 3 DocumentRoot /var/www/html/trac/ 4 <Directory /var/www/html/trac/> 5 PassengerEnabled Off 6 AllowOverride All 7 Options -MultiViews 8 </Directory> 9</VirtualHost>

どのようにconfは設定すればよいでしょうか。複数のサイトでは、シンボリックリンクを貼れとかいていますが、 rails_app以下にPHPが行くのは気持ち悪くまだ触れていません。シンボリックリンクを用いれば解決できますか。

追加編集について

VitualHostを利用して、Railsアプリ, PHPアプリ(独自のTracアプリ)を共存したいと考えています。

既にRailsアプリはドメイン取得済みで公開しています。(100.100.100.100:80 or www.hogehoge.comでアクセス可能)
そして、PHPアプリに関しては、これから設定をしていきたいと考えているのですが、
IPアドレス直打ちとポート8080を指定したときのみPHPアプリを公開したいと考えています。(100.100.100.100:8080)

vitualhostにどのようなことをかけばよいでしょうか。

ご回答有難うございます。私の勉強不足で、まだ解決できていません。

開発環境/conf

Server version: Apache/2.2.15 (Unix)
Server built: Oct 16 2014 14:48:21

■ httpd.conf

Listen 100.100.100.100:8080 Listen 100.100.100.100:80 NameVirtualHost 100.100.100.100:8080 NameVirtualHost 100.100.100.100:80 <VirtualHost 100.100.100.100:8080> DocumentRoot /var/www/html/trac/ ServerName 100.100.100.100:8080/trac <Directory /var/www/html/trac/> PassengerEnabled Off AllowOverride All Options -MultiViews </Directory> </VirtualHost>

■ passenger.conf

<VirtualHost *:80> ServerName www.hogehoge.com DocumentRoot /var/www/rails_app/public RailsEnv production <Directory "/var/www/rails_app/public"> AllowOverride all Options -MultiViews allow from ALL </Directory> CustomLog /var/www/rails_app/log/ ErrorLog /var/www/rails_app/log/ </VirtualHost>

■ バーチャルホストの一覧確認

[root@hagetak hagetak]# httpd -S VirtualHost configuration: 100.100.100.100:8080 is a NameVirtualHost default server 100.100.100.100:8080 (/etc/httpd/conf/httpd.conf:1004) port 8080 namevhost 100.100.100.100:8080 (/etc/httpd/conf/httpd.conf:1004) wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server hogehoge.com (/etc/httpd/conf.d/passenger.conf:25) port 80 namevhost hogehoge.com (/etc/httpd/conf.d/passenger.conf:25) Syntax OK

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/18 16:10

VirtualHostを使ってRailsアプリとPHPアプリとPythonアプリ(Trac)にアクセスするようにhttpd.confを作りたいように見えますが、あってますか? 80ポートの特定のURIをRails、別のURIをPHPアプリといった形にサイトを設計するのでしょうか?サイト全体の設計が見えないと回答がしづらそうです。
guest

回答1

0

ベストアンサー

VirtualHostを使えばRailsアプリの方にシンボリックリンクは不要です。

Linuxでもディストリビューションにより、流儀が異なりますが、ここではDebian系のやり方を解説します。

  1. リンク先を参考にモジュールの設定を行う。
  2. /etc/apache2/sites-available/配下にphp-trac.confという名前で下記のファイルを配置
  3. sudo a2ensite php-tracと実行
<VirtualHost 100.100.100.100:8080> DocumentRoot /var/www/html/trac/ <Directory /var/www/html/trac/> PassengerEnabled Off AllowOverride All Options -MultiViews </Directory> </VirtualHost>

参考: Apache2@Debianでのバーチャルホスト設定まとめ

投稿2015/08/19 00:58

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hagetak

2015/08/20 04:21

Apache2.2.15で挑戦してみた結果、うまく行きません(当然、コマンドはバージョンに合わせたもので実行しております。VirtualHostの設定/環境について再度修正しましたので、ご教鞭いただければ幸いです。)
退会済みユーザー

退会済みユーザー

2015/08/20 04:29

うまくいかないとは、具体的にどんな問題が発生していますか?推察するに、PHPアプリの方が接続できてなさそうに見えるのですがいかがでしょうか?気になるのは下記の2点です。 - <VirtualHost 100.100.100.100:8080>のServerNameは「100.100.100.100」というIPアドレスでアクセスするなら「100.100.100.100」だけでOKです。 - PHPの設定がまるっとないように見えるんですが、どこかで設定されていますか?
hagetak

2015/08/20 05:19

迅速ご回答有難うございます。本当に親身に聞いてくださりたいへん助かっております。 具体的なエラー:http://100.100.100.100:8080にアクセス時、「このウェブページにアクセスできません(ERR_CONNECTION_TIMED_OUT)」とでます。 予想通り、Railsのアプリケーションは正常に動いております。 PHPの設定に関しては、下記のURLを参考に設定しています。(それ以外はなにもいじっておりません。) http://dotinstall.com/lessons/basic_sakura_vps/8015
退会済みユーザー

退会済みユーザー

2015/08/20 05:27

> 具体的なエラー:http://100.100.100.100:8080にアクセス時、「このウェブページにアクセスできません(ERR_CONNECTION_TIMED_OUT)」とでます。 もしかしてファイアーウォールで8080への接続を拒否していたりしませんか?一旦そちらを確認してみてください。
hagetak

2015/08/20 05:40

ファイアーウォールの問題でした。以下を記述したところ正常にアクセスすることが出来ました。 > -A SERVICES -p tcp --dport 8080 -j ACCEPT お手間を取らせてしまい申し訳ございません。このたびは誠にありがとうございました!
退会済みユーザー

退会済みユーザー

2015/08/20 05:55

どういたしまして!解決できてよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問