web-dev-qa-db-ja.com

複数のRails同じサブドメイン上のアプリ?

最近、Railsを試してみることにしました。 PHPを使用しているときは、すべてのPHPプロジェクトを同じディレクトリに置いていました。たとえば、http://ubuntu/app1http://ubuntu/app2などがあります。

Rails(http://Ruby.ubuntu)のサブドメインを作成し、RailsとPassengerをインストールすると、すべてが機能しています。ただし、間違っている可能性がありますが、できるようです。サブドメインごとに1つのRailsアプリ?

私のVirtualHostは次のとおりです。

<VirtualHost *:80>
    ServerName Ruby.ubuntu
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/Ruby/blog/public

    <Directory /var/www/Ruby/blog/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        RailsEnv development
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${Apache_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${Apache_LOG_DIR}/access.log combined

</VirtualHost>

すべてのPHPおよびその他のファイルは/var/www/mainに保存されます。すべてのRailsアプリを/var/www/Rubyに保存できるようにしたいです。DocumentRootを変更してみました/var/www/Rubyに移動しますが、それほど単純ではないと思います。RailsアプリのWelcomeAboardページを参照し、[アプリケーションの環境について]をクリックすると、404ページが表示されます。しかし、DocumentRootがパブリックディレクトリに設定されている場合、期待どおりの結果が得られます。

新しいプロジェクトを作成するたびに新しいサブドメインを作成する必要はありません。すべてのアプリを/var/www/Rubyに保存できるようにする方法はありますか?http://Ruby.ubuntuを参照すると、そこにあるすべてのRailsアプリにアクセスできますか?作成したい場合は、その方法で新しいアプリです。私がしなければならないのはRails new appだけで、Apache.htaccessやVirtualHostの構成は必要ありません。

2
Derek Maciel

必要な数のRailsアプリケーションを提供できます。

Apache httpdとpassengerを使用している場合、手順は次のとおりです。

各RailsアプリケーションのパブリックフォルダーをサブフォルダーとしてApacheのDocumentRootにシンボリックリンクします。次に、Apache構成にRailsBaseURIディレクティブを追加して、指定されたフォルダーがRailsアプリケーション。

2つのRailsアプリrapp1とrapp2があるとします。ApacheDocumentRootが/ var/www/htmlであるとします。

  ln -s rapp1 /var/www/html/rapp1
  ln -s rapp2 /var/www/html/rapp2

次に、Apache仮想ホスト構成ファイルを開き、次の2行を追加します。

  RailsBaseURI /rapp1
  RailsBaseURI /rapp2

apacheサーバーを再起動し、http://servername/rapp1にアクセスすると、Railsアプリケーションが提供されます

5
Litmus

誤解されるかもしれませんが、あなたが達成しようとしていることはSub-URIと呼ばれていると思います。

Ruby.ubuntuサブドメインを使用すると、各アプリケーションは異なる/ subdirectoriesで実行されます。

さらに読む: http://collab.stat.ucla.edu/users/jose/weblog/9e335/

0
dannymcc

SubURIを使おうとしているようです。乗客はそれらをサポートできますが、仮想ホストの構成を少し調整する必要があります。

Passenger Docs for Apacheは、それを行う方法を説明し、例を挙げて説明します。

0
qweet