0

Linux VPS のサブディレクトリで Rails アプリを実行したいと考えています。パッセンジャーのドキュメントを調べたところ、自分のマシンに適切な仮想ホスト構成とシンボリック リンクを設定する方法がわかりません。

www.domain.eu というドメインと /apps/webapp にある rails アプリがあり、www.domain.eu/webapp でサイトをホストしたいと考えています。

私はいくつかの分野について確信が持てません:

1.) webapp VirtualHost 構成の詳細はどこに入力すればよいですか? それはファイルにあるべきですか、それとも呼び出されapache2.confたファイルを作成してそこに設定を入れる必要がありますか? 矛盾する例が多いようです。sites-availablewebapp

apache2.conf2.) 前の質問から学び、ディレクトリの下で Rails アプリを提供するためにこのファイルをどのように修正できますかwww.domain.eu/webapp(再び多くのドキュメントを読みますが、これを行うには多くの方法があるようです)

<VirtualHost *:80>
      ServerName domain.eu
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /apps/webapp/public
      <Directory /apps/webapp/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </Directory>

      RailsBaseURI /webapp
      <Directory /apps/webapp/public>
        Options -MultiViews
      </Directory>
   </VirtualHost>

3.) ディレクトリ ルートを URL にポイントするには、シンボリック リンクを作成する必要があることに気付きました。試しln -s /apps/webapp/public ./testてみると、 が返されますmissing symlink error。ここで何が推奨されますか?

4.) 最後に、Rails 3config.action_controller.relative_url_root = "/webapp"は廃止されたようですが、使用する新しい推奨規則はありますか?

私のセットアップ: Ubuntu 10.04、mysql 5、apache2、phusion Passenger (最新)、ruby 1.9.3、および rails 3.2.3 を実行する Linux VPS サーバー。

誰かがもっとコードを必要とする場合は、大声で言ってください、事前に感謝します!

4

1 に答える 1

1

そのため、多くのことを読んだ後、私はこれを機能させることができました。

私の目的のために、サブ URI サイトの VirtualHost 情報を apache2.conf ファイルの下部に追加しました。これは httpd.conf かもしれませんが、必要に応じてこれらを /etc/apache2/sites-available に入力できます。それをすべて別々に保管してください。

このファイルの先頭で、サーバーのデフォルトの「ホームページ」の場所を指定します。Apache2 を実行しているので、ホームページは /var/www にあります。この下で、rails サブ URI オプションを設定します。最初にサブ URI として使用する URL を指定し、ディレクトリ タグで Rails アプリのパブリック フォルダーを指定します。MultiViews をオフにする必要があるため、(-) を付けて apache2.conf ファイルを完成させます。

<VirtualHost *:80>
        ServerName domain.com
        DocumentRoot /var/www
        <Directory /var/www>
        Allow from all
        </Directory>


        RailsBaseURI /webapp
        <Directory /apps/webapp/public>
        Options -MultiViews
        </Directory>
</VirtualHost>

あとは、サイト対応フォルダーにシンボリック リンクを作成して、/var/www/webapp が /apps/webapp/public フォルダーを指すようにするだけです。これは次のようになります。

ln -s /apps/webapp/public /var/www/webapp

シンボリック リンクを作成しているので、Rails のルートや環境ファイルに追加のコードを挿入する必要はありません。RackENV プロダクションを使用して使用する環境を指定できます (明らかに al rails 3 + apps are rack ? そうでない場合はコメントしてください)

于 2012-10-09T09:33:32.100 に答える