初心者がPHPで掲示板を作成しました
- HTMLやCSSは使っていたことがありますが、初めてPHPを触り掲示板を作成することになりました。
- フォームから投稿した時刻がどうしてもずれてしまい、php.iniを変更してみたり色々と調べてみても修正出来ず、原因に辿り付くまでに時間が掛かりました。
- もし同じようなことで躓く方がいた場合の参考になればと思ったのと、自身のアウトプットのために今回投稿してみました。
- というか少し考えればすぐに分かるかもですが…初心者のため温かい目で見て下さると幸いです。
動作環境
- AWS EC2上にLAMP構成としています。
- Linux2
- Apache
- MariaDB
- PHP8.1
時刻がズレていた原因
- 結論から書きますと、原因はRDSの設定でした。
- 「PHPで掲示板を作成しフォームから投稿する」というものから「原因はPHPの設定だ」と信じて疑っていなかった為、PHP上の設定をどうにか修正しようとあれこれ試してみたものの直らず、どれだけ検索しても答えが見付からず頭を抱えていました…。
- よくよく考えてみればデータベースに投稿内容を保存して表示しているのだから、原因はデータベースでは???と気付くまでに数日かかってしまいました。
データベースの時刻設定
- データベースの時刻はデフォルトではUTCで登録されています。
- 時刻設定を日本時間に合わせるためには、RDSのパラメーターを変更する必要があります。
- そのため、my.cnfなども修正してみましたが原因はそこでもなく、今回の場合はコンソール上でパラメータグループを新規作成し、セットすることで日本時間に合わせることが出来ました。
- そもそもパラメータグループって何なのって話なのですが、パラメータグループとは、RDSのインスタンスに適用される設定のまとまりのことです。今回のように時刻設定だったり文字コードだったりキャッシュのサイズなんかを設定するためのグループで、一言で言うとRDSの機能をカスタマイズするための便利なもの、といった感じです。
- そして、デフォルトのパラメータグループは変更できませんので、この場合は新規でパラメータグループを作成する必要があります。
RDSのパラーメータグループを変更する手順
-
それではパラメータグループを変更していきます。
-
まずAWSコンソールにログイン。
-
RDSで使用しているデータベースを選択し、データベースの詳細を確認
-
最初に確認したデータベースと、エンジンバージョンを選択してください。
-
ずらずらっと色々出て来ますが、「time_zone」を入力して絞り込みます。
-
そうしたら入力欄に「Asia/Tokyo」と入力し、変更を保存します。
-
データベースの方へ戻ります。
-
新しい値で、先ほど作成したカスタムパラメータグループが選択されています。今回は個人で作成しているwebアプリケーションなので「すぐに適用」を選択し、「DBインスタンスを変更」を押してください。すぐに適用にチェックを入れてもすぐに再起動されるわけではありませんが、データーベースが停止してしまっても問題ない場合はすぐに適用を選択してください。
- データベースの再起動後、無事に日本時間に時刻が修正されたのを確認しました。
- 念のためデータベースの詳細から、最初に確認したのと同じように、DBインスタンスパラメータグループが変更されているのを確認してみましょう。
最後に
- 最後まで読んでくださりありがとうございました。
- AWSは中々に覚えることが多くて奥が深いですね。しっかり覚えて身につけていきたいと思います。
- また、初心者のアウトプットのため、どこか間違いがありましたらご教示ください。