Raspberry Pi 4のnginx+php-fpmでのnexcloudをmariadbに変更

Docker

約 3 分で読めます。



この記事で、docker-composeとしてnginx/php-fpm上で動くnextcloudを構築しました。



今回は↑で使っていたデータベースsqlite3をmysql実装であるmariadbに変更しました。

変更前



変更後



修正内容はこのコミットを参照ください。

Modified to use mariadb. · kurofuku/nextcloud-container-fpm@1d5639b
Contribute to kurofuku/nextcloud-container-fpm development by creating an account on GitHub.



docker-composeに精通している方であれば、↑の差分で作業内容を理解いただけると思います。

一点、mariadbに変更したところ、初回セットアップで↓のエラーが出ました。



nginxがPHP処理をphp-fpmに委譲するなかで、応答が来ずタイムアウトになったと想像できます。

タイムアウトを決め打ちで180秒にすることで対応しました。
 こちらの記事を参考にさせていただきました。感謝します。

まずnginxの設定ファイルdefault.confにて、fastcgiの待ち時間を180秒に変更。
ここにも書かれている通り、未定義時のデフォルト値は60秒。



お次はphp-fpmの設定。
www.conf.templateにて、request_terminate_timeoutを確認すると0でした。
 Link

0であればこの設定によるPHP処理の強制終了はなさそうです。
ひとまずこのままにしておきます。

最後にphp.ini。
max_execution_timeがもともと30秒だったので、180秒にしました。



これで先ほどのHTTP504 Gateway Timeoutは出なくなりました。

↓の通り、推奨アプリのインストール画面には遷移しませんが、これは既知の問題で、手でURLを入力すれば良いので、ひとまずこれは放置します。

終わりに

いかがでしたか。

お次はHTTPS化にトライしたいと思います!

Comments

タイトルとURLをコピーしました