web-dev-qa-db-ja.com

Ruby on Rails application(mod passenger))の仮想ホスト設定

ApacheにRedmineをインストールしようとしています。 Apacheサーバーはローカルネットワーク上で動作します。私のApacheセットアップは、単一の仮想ホストで構成されています。対応するパスを使用するだけで、さまざまなディレクトリにアクセスできます。

http:// ip_address/folder_of_the_project_1

この状況でredmineが機能するように仮想ホストをセットアップするにはどうすればよいですか?これが私の現在の仮想ホスト設定です:

NameVirtualHost *
<VirtualHost *>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    RailsBaseURI /redmine
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>

    <Directory /var/www/>
            Options FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    <Directory /var/www/redmine/public>                
            Options FollowSymLinks
            AllowOverride None
            Order allow,deny
            Allow from all
    </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 /var/log/Apache2/error.log

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

    CustomLog /var/log/Apache2/access.log combined
    ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

ありがとう、Ingo86

6
Ingo86

DocumentRootをRedmineパブリックディレクトリにポイントし、RailsBaseURIを/にポイントします。

これが私の働くUbuntuサーバーの例です:

<VirtualHost *:80>
  ServerName redmine.int.example.com
  ServerAlias redmine
  DocumentRoot /var/www/redmine/public

  RailsBaseURI /
  RailsEnv production

  PassengerMaxPoolSize 4

  <Directory /var/www/redmine/public>
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>

  LogLevel info
  ErrorLog /var/log/Apache2/redmine-error.log
  CustomLog /var/log/Apache2/redmine-access.log combined
</VirtualHost>
4
jtimberman

RailsBaseURI /redmine/publicの代わりにRailsBaseURI /redmineを試しましたか?念のため。

0
Maxwell

次のように、誰かがDocumentRootをredmineディレクトリのルートにポイントすることを提案しました:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName golem.it
    DocumentRoot "/var/www/redmine/public"

    <Directory /var/www/redmine/public>
            AllowOverride all
            Options -MultiViews
    </Directory>
</VirtualHost>

上記はもちろん機能しますが、特定の質問に答えることも、他のアプリケーションからdocumentrootを完全に盗む必要のない一般的な解決策を与えることもありません。

私が見つけた解決策では、/ var/www/redmine-2.2/publicという名前のredminesへのシンボリックリンクを作成する必要があります(これはredmineではなく、可能性のある乗客の命名バグによりredminesであることに注意してください)。解決策を以下に示します(sslの部分は無視してください) ):

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName golem.it
    DocumentRoot "/var/www"
    Options +Indexes
    Options +ExecCGI

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>

    PassengerAppRoot /var/www/redmine-2.2
    RailsBaseURI /redmines
    Alias /redmine /var/www/redmines
    <Directory /var/www/redmines>
            AllowOverride All
            Options -MultiViews
    </Directory>

    SSLEngine On
    SSLCertificateFile /etc/Apache2/dwewe.crt
    SSLCertificateKeyFile /etc/Apache2/wefew.key
    SSLCACertificateFile /etc/Apache2/wefer/ca.crt
    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
</VirtualHost>
0
dendini