先日、わたしのMastodonサーバ「クロサワドン!」の数少ないユーザ様から、「画像がアップロードできない」という指摘がありました。
確認してみると、確かにアップロードできなかった。
前はアップロード出来たんだけどなぁ...。
ちなみに、アイコンやヘッダーの変更も出来なくなってた。
なお、前にアップデートするのに失敗した経験や、単にまとまった時間が取れなかったり、他に優先したいことなんかもあって、いまだにバージョンは1.6.1です。。。
近々アップデートします(´・_・`)
さて、とりあえずnginxのログ( /var/log/nginx/error.log )を確認してみたところ、ブラウザ上で画像のアップロードをした時にこんなログを吐いてました。
2018/04/16 11:50:26 [crit] 1100#0: *1670 open() "/var/lib/nginx/tmp/client_body/0000000010" failed (13: Permission denied), client: xxx.xxx.xxx.xxx, server: kurosawa-ruby.xyz, request: "POST /api/v1/media HTTP/2.0", host: "kurosawa-ruby.xyz", referrer: "https://kurosawa-ruby.xyz/web/getting-started"
そこで、このエラーログを元にググってみたところ、行き着いたのがこのページ。
/var/lib/nginxの所有者が/etc/nginx/nginx.confのuserになっていないのがいけませんでした。
そこで確認してみたところ、/etc/nginx/nginx.confは
user mastodon
になってたのに対し、/var/lib/nginxの所有者はrootになってました。
※nginxのインストールユーザがrootなのです。それの是非はまた別の話。。。
というわけで、このコマンドを実行して所有者変更。
無事、アップロードできるのを確認しました。
...まぁ、このあとで/etc/nginx/conf.d/nginx.confの記述内容間違えて、今度は「502 Bad Gateway」でアップロード出来なくなった問題が起こったのですが...。
それはまた別の話。
リクエストボディのバッファリングサイズが大きすぎて、Wartning吐きまくるのをなんとかしたかっただけなのに。