0

私は、Bluehost の Passenger で Rails アプリを実行できるように何日も試みてきましたが、うまくいきませんでした。これが実行されることを期待しているサブドメインに移動すると、cgi-bin とパブリック サブディレクトリを含むディレクトリ リストしか表示されません。Railsアプリの実行はありません。

httpd.conf には以下が含まれます。

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6
  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby
</IfModule>

<VirtualHost 162.144.138.43:80>
  ServerName secure.xxxxx.com
  ServerAlias www.secure.xxxxx.com
  DocumentRoot /home/diamoou1/public_html/securefinance
  ServerAdmin webmaster@secure.xxxxx.com
  UseCanonicalName Off
  CustomLog /usr/local/apache/domlogs/secure.xxxxx.com combined
  CustomLog /usr/local/apache/domlogs/secure.xxxxx.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
  ## User diamoou1 # Needed for Cpanel::ApacheConf
  UserDir enabled diamoou1
  <IfModule mod_suphp.c>
    suPHP_UserGroup diamoou1 diamoou1
  </IfModule>
  <IfModule !mod_disable_suexec.c>
    <IfModule !mod_ruid2.c>
        SuexecUserGroup diamoou1 diamoou1
    </IfModule>
  </IfModule>
  <IfModule mod_ruid2.c>
      RUidGid diamoou1 diamoou1
  </IfModule>
  ScriptAlias /cgi-bin/ /home/diamoou1/public_html/securefinance/cgi-bin/

  <Directory /home/diamoou1/public_html/securefinance>
    Options -MultiViews
    AllowOverride All
  </Directory>

</VirtualHost>

/home/diamoou1/public_html/securefinance/public に .htaccess ファイルがあります:

<IfModule mod_passenger.c>
  Allow from all
  Order Deny,Allow
  Options +FollowSymLinks -SymLinksIfOwnerMatch -MultiViews
  PassengerResolveSymlinksInDocumentRoot on
  #Set this to whatever environment you'll be running in
  RailsEnv production
  RackBaseURI /
  SetEnv GEM_HOME /home/diamoou1/ruby/gems
</IfModule>

.htaccess ファイルに一時的に不正な行を入れると、ログに予想されるエラーが表示されるため、明らかに apache が .htaccess ファイルを読み取っています。

問題は RackBaseURI にあると思われます。Passenger をルートとしてインストールしました。RackBaseURI は /root に解決され、/root/public_html ディレクトリが存在しますが、Apache は /home/diamoou1/public_html/securefinance ディレクトリ (レール アプリが実際に存在する場所) を提供しています。その変数を変更する方法がわからないか、それが本当に問題です。PassengerBaseURI は同じです。

これを修正するにはどうすればいいですか?????

4

1 に答える 1

0

これはあなたを助けるかもしれません: https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html#_tutorial_example_writing_and_deploying_a_hello_world_rack_application

Phusion Passenger が提供する設定例を次に示します。

<VirtualHost *:80>
    ServerName www.rackexample.com
    DocumentRoot /webapps/rack_example/public
    <Directory /webapps/rack_example/public>
        Allow from all
        Options -MultiViews
        # Uncomment this if you're on Apache >= 2.4:
        #Require all granted
    </Directory>
</VirtualHost>

DocumentRoot と Directory は、ルートではなく、Rails アプリケーションのパブリック フォルダーを指す必要があります。

変更する必要があります:

...
DocumentRoot /home/diamoou1/public_html/securefinance
...
<Directory /home/diamoou1/public_html/securefinance>
...

に :

...
DocumentRoot /home/diamoou1/public_html/securefinance/public
...
<Directory /home/diamoou1/public_html/securefinance/public>
...
于 2015-04-22T13:15:41.007 に答える