半年ぐらいの問題が解決しました。
環境
- redmine 4.2.4
- Linux Mint 20.03
- Apache 2.4.54
- mysql 8.0.31
- redmine_knowledgebase 4.1.1
- ruby 2.70-p0
- redmineディレクトリ /var/lib/redmine
- redmineログディレクトリ /var/log/redmine
事象:
- knowledgebaseプラグインを用いて記事を発行します。
- 画像をアップロードします。
- 「作成」をクリックすると 500 internal server errorになります。
エラーになるものの、元のページに戻ると記事は作成されているため割と放置していました。
とはいえ、記事を発行するたびにエラーが発生するのはストレスフル。今回、その事象を解決までこぎ着けます。
調査
production.logを発行します。
tail -f /var/log/redmine/production.log
上記ログを流しながら、現象を再現させます。
その結果、以下のログに突き当たりました。
Completed 500 Internal Server Error in 1091ms (ActiveRecord: 869.6ms)
ActionView::Template::Error (undefined method `thumbnail_path' for #<#<Class:0x0000564f87f6a428>:0x0000564f87600360>
Did you mean? thumbnail_tag
thumbnail_url):
1: <h1><%= l(:label_new_article) %>: <%= link_to(h(@article.title), @article_url) %>
2: (<%=h @article.category.title %>)</h1>
3:
4: <% if thumb = get_article_thumbnail_url_absolute( @article ) %>
5: <p><img src="<%= thumb %>" alt="[Thumbnail]"></p>
6: <% end %>
7:
このエラーで検索したところ、そのものズバリの記事が書かれています。
これを元に解決させていきます。
手順
全て管理者権限で実施しています。
ディレクトリに移動します。
cd /var/lib/redmine/plugins/redmine_knowledgebase/app/helpers
修正するファイルのバックアップを取ります。
cp -pi /var/lib/redmine/plugins/redmine_knowledgebase/app/helpers/knowledgebase_helper.rb /hoge/knowledgebase_helper.rb.org
差分の通りファイルを修正します。
vi /var/lib/redmine/plugins/redmine_knowledgebase/app/helpers/knowledgebase_helper.rb
ファイル差分
(上述したバージョンであれば184行目)
thumb = get_article_thumbnail( article )
if thumb
- return "#{Setting.protocol}://#{Setting.host_name}#{thumbnail_path(thumb)}"
+ return polymorphic_url(thumb, :host => Setting.host_name, :protocol => Setting.protocol)
else
return ''
end
修正したファイルを反映させます。
cd /var/lib/redmine
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2.service
対応後の修正を確認
- knowledgebaseプラグインを用いて記事を発行します。
- 画像をアップロードします。
- 「作成」をクリックしてもエラーが発生しないことを確認します。
コメントを残す