最近、Railsを試してみることにしました。 PHPを使用しているときは、すべてのPHPプロジェクトを同じディレクトリに置いていました。たとえば、http://ubuntu/app1
、http://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の構成は必要ありません。
必要な数の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アプリケーションが提供されます
誤解されるかもしれませんが、あなたが達成しようとしていることはSub-URIと呼ばれていると思います。
Ruby.ubuntuサブドメインを使用すると、各アプリケーションは異なる/ subdirectoriesで実行されます。
SubURIを使おうとしているようです。乗客はそれらをサポートできますが、仮想ホストの構成を少し調整する必要があります。
Passenger Docs for Apacheは、それを行う方法を説明し、例を挙げて説明します。