2011-02-06 9 views
0

nginxとPassengerでRailsアプリケーション(redmine、具体的には)を配備するさまざまな方法を試しています。 /var/local/railapps/redmine-1.1にインストールされているとします。Nginx +の乗客は、アプリケーションをホストルートにデプロイするときにソフトリンクを解決しません。

私はサブURIとしてデプロイすると、私はちょうどpublicフォルダにソフトリンクを作成することができます:Redmineの缶、

これにより
root /var/www/rails; 
passenger_enabled on; 
passenger_base_uri /redmine; 

sudo ln -s /var/local/railapps/redmine-1.1/public /var/www/rails/redmine 

nginx.confserverブロックに追加/var/local/railapps/redmine-1.1/configのように、同じレベルのアクセスフォルダ(たとえば、public)。

それはホストルートにインストールされている場合一方、旅客は(this guideによる)ソフトリンクを解決しません:

sudo ln -s /var/local/railapps/redmine-1.1/public /var/www/rails/redmine 

root /var/www/rails/redmine; 
passenger_enabled on; 

私は旅客からエラーを取得しています:ルート/var/www/railsNo such file or directory - config/environment.rb、どのリンクターゲットからではなく、リンク自体からの相対パスを取得しようとすることを意味します。私はメインRedmineのフォルダへのリンクを作成する場合は、全部の作品:

sudo ln -s /var/local/railapps/redmine-1.1 /var/www/rails/redmine 

root /var/www/rails/redmine/public; 
passenger_enabled on; 

ので、質問は、なぜ「サブURI」モードでソフトリンクを解決することができ旅客があるが、「ホストではありませんされてルート "モード?いくつかの追加設定がありますか?

答えて

2

Capistrano形式の展開ディレクトリをサポートするために、「ホストルートモード」ではこれを実行しません。これは、this section of the documentation of the Apache versionに詳細に記載されています。 Apacheのバージョンではシンボリックリンクの解決動作をカスタマイズすることができます(下位互換性の理由から).Nginxのバージョンは1種類の動作しかサポートしていません。

+0

これは正しいです。 [これは質問と回答]を参照してください(http://stackoverflow.com/questions/4485349/can-my-public-directory-be-a-symlink-with-rails-3-passenger-3-nginx-0-8/4689901#4689901)を参照してください。 –

+0

Hongliに感謝、私は確かにガイド全体を読んでいる必要があります。 – fjarri

0

搭乗者のバージョン2以降、シンボリックリンクはドキュメントルートで解決されません。この設定は次のように変更できます。

PassengerResolveSymlinksInDocumentRoot on 
関連する問題