約 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