プラスα空間

ブログ in お市 のーと

Redmineのチケットにファイルを添付できない[追記あり]

一人Redmineをやっています。

チケットを編集していて、ファイルを添付できない事がわかりました。ファイルをアップロードすると、Internal Server Error (500)が出ます。

Redmineファイル添付

いろいろ調べた結果、次のページが一番詳しい事がわかりました。

そして、わかった方法が次の4つの方法です。

  1. /usr/local/www/redmine以下ののオーナとグループをwww:wwwにする
  2. /usr/local/www/redmineのconfig.ruのオーナをwww、files以下をwwwにする
  3. /usr/local/www/redmineのfiles以下をwww、/usr/local/etc/apache24/Includes/redmine.confにpassengerの設定を追加する
  4. /usr/local/www/redmineのfiles以下をnobodyにする

どの方法をとっても、ファイルのアップロードは可能になりますが、1番目が、一番簡だと思います。

なお、FreeBSD9.1でRedmine2.3.3を使っています。Passengerモジュールを使って、Apache経由でRailsと接続しています。また、gemの環境は、次の通りです。

# gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.25
  - RUBY VERSION: 1.9.3 (2013-06-27 patchlevel 448) [amd64-freebsd9]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9
  - RUBY EXECUTABLE: /usr/local/bin/ruby19
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - amd64-freebsd-9
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.9
     - /root/.gem/ruby/1.9
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

また、Redmineの環境情報は、次の通りです。

Environment:
  Redmine version                2.3.3.stable
  Ruby version                   1.9.3-p448 (2013-06-27) [amd64-freebsd9]
  Rails version                  3.2.15
  Environment                    production
  Database adapter               Mysql2

1. /usr/local/www/redmine以下ののオーナとグループをwww:wwwにする

一番簡単です。ただし、サービスの再起動が必要になります。

# cd /usr/local/www
# chown -R www:www redmine
# /usr/local/etc/rc.d/apache24 restart

2. /usr/local/www/redmineのconfig.ruのオーナをwww、files以下をwwwにする

変更箇所が最低限の方法です。サービスの再起動が必要になります。config.ruのオーナで、passengerが起動するようです。

# cd /usr/local/www/redmine
# chown www config.ru
# chown -R www files
# /usr/local/etc/rc.d/apache24 restart

3. /usr/local/www/redmineのfiles以下をwww、/usr/local/etc/apache24/Includes/redmine.confにpassengerの設定を追加する

RailsでPassengerを使う物すべてに共通するので、設定しておいた方が良いのかもしれません。Apacheの設定が必要になります。また、サービスの再起動が必要です。

# cd /usr/local/www/redmine
# chown -R www files
# vi /usr/local/etc/apache24/Includes/redmine.conf
# /usr/local/etc/rc.d/apache24 restart

/usr/local/etc/apache24/Includes/redmine.confの設定は、次の通りです。”PassengerUserSwitching off”以降を追加します。

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9/gems/passenger/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9/gems/passenger
PassengerDefaultRuby /usr/local/bin/ruby19
DefaultInitEnv RAILS_ENV production
PassengerUserSwitching off
PassengerUser www
PassengerGroup www
PassengerDefaultUser www
PassengerDefaultGroup www

次のページを参考にしました。Thank you!

4. /usr/local/www/redmineのfiles以下をnobodyにする

ほとんど、対処療法的です。設定変更の必要がありません。また、サービスを止める必要もありません。ただし、セキュリティ的に不安です。

# cd /usr/local/www/redmine
# chown -R nobody files

結論 (追記 2016-09-18 17:09)

安全な方法は、どれもサービスの再起動が必要になるので、1番の方法が簡単で確実だと思います。

# cd /usr/local/www
# chown -R www:www redmine
# apachectl restart

3番の方法は、うまういかなくなっていました。

コメントを残す