さくらのレンタルサーバーでWordPressのデータベースをアップグレードしてみた。

WordPressの管理画面で、古いデータベースを使っているので改善したほうが良い旨のメッセージが出ていたため、データベースのバージョンをあげることにしました。WordPressはさくらのレンタルサーバーで稼働しているため、さくらのサーバー管理用のコンソール画面から作業をしました。

まずコンソール画面を見てみると、重要な設定が2件とあります。「詳細を見る」を確認しました。

非推奨のDBバージョンを使用しています、の旨のメッセージが出ているため「設定」をクリックします。

ここからデータベースのアップグレードができるようなので「アップグレード設定」をクリックします。

注意書きがあり、対象のデータベースサーバーが表示されています。「データベースのアップグレード」をクリックします。

アップグレードの設定画面になります。どうやらすぐにアップグレードが行われるわけではなくて、指定の時間になったらアップグレードが行われるようです。予定日時の設定のところに希望の日時を設定します。セレクトボックスのためどれかを選ぶことになります。アップグレード後のデータベース名は変更しません。「同意して予約する」をクリックします。

申請完了の画面になります。予約日時とステータスが表示されます。

なお、データベースのアップグレードの予約が完了するとメールが届きます。さくらのレンタルサーバーに登録されているメールアドレスです。

予約した時間になるとアップグレードが行われます。10分後ぐらいに、アップグレードが完了した旨のメールも届きます。

コンソール画面を改めて見てみると、新しいデータベースサーバーが増えています。

このあとWordPressの設定を変更する必要があり、データベースサーバーの名前はメモしておきます。新しいデータベースサーバー名は「mysql80.account.sakura.ne.jp」となります。

WordPressの設定を変更するにあたり、設定ファイルの場所を確認します。コンソール画面の左側のリストから「Webサイト/データ」 → 「インストール済み一覧」をたどります。インストール済みパッケージが表示されます。設定ファイル、および、インストール先パスを見ます。wp-config.php が編集する設定ファイルとなります。

コンソール画面の左側のリストから「Webサイト/データ」 → 「ファイルマネージャー」をたどります。ファイルマネージャーの画面から wp-config.php を選択して、右クリックで編集を選びます。

wp-config.php の編集画面になります。修正するところは、MySQLのホスト名のところです。先ほどメモした mysql80.account.sakura.ne.jp を入力します。今回のデータベースのアップグレードは、MySQL5.7から8.0への変更となります。この場合は、ホスト名の書き換えだけで良いそうです。アップグレード時にデータベース名を意図的に変更した場合は、データベース名の修正も必要になります。

修正ができたら右下の再読込をクリックします。保存のほうが適当だと思うのですが、なぜかわからないですけれど、保存が非活性になっていて押せません。再読込をクリックしましたが、反映はされているようでした。

閉じるボタンをクリックして、編集画面を閉じます。

WordPressの管理画面に戻って、設定の状況を確認してみました。以下はデータベースのアップグレードをする前に出ていた改善の項目です。「古いデータベースサーバー」の表示があります。

こちらがデータベースのアップグレード後の画面です。「古いデータベースサーバー」の表示は消えていました。

WordPressのサイトも問題なく表示されることも確認できました。

ちなみに「REST APIで予期しない結果が発生しました」および「永続オブジェクトキャッシュを使用してください」のメッセージが出ているので、調べてみました。

「REST APIで予期しない結果が発生しました」のほうですが、これはさくらのレンタルサーバーのWAF設定を有効にすると出てしまうものらしいです。無効にすれば解消するかもしれませんが、いったんそのままにしました。

「永続オブジェクトキャッシュを使用してください」のほうですが、こちらはプラグインを入れれば解消するものらしいです。大きな影響はないとのことで、こちらもそのままにしました。

なおデータベースのアップグレードは完了してサイトも問題なく表示されるのですが、さくらのコンソール画面には、重要な設定が2件の表示はそのままです。これは古いデータベースを削除しないと消えないのですかね?

最後に、PHPのバージョンアップについても書いておきます。PHPのバージョンアップはデータベースのアップグレードより簡単で、コンソール画面からPHPのバージョンを選ぶだけです。こちらはすぐに反映されるようです。

Tomcatの使用メモリの設定をしてみた。

Tomcat9 の使用メモリの設定をしみてました。環境は以下です。

Amazon Linux 2023(メモリ1G)
Tomcat 9.0.106

Linuxのメモリが1Gしかないので、Tomcatに割り当てるメモリは小さめにします。

Tomcatのホーム配下にある bin ディレクトリに setenv.sh というファイルを新規作成します。setenv.sh に記載する内容は以下です。


export CATALINA_OPTS="-Xms64m -Xmx128m -XX:MaxMetaspaceSize=128m"
  • -Xms64m・・・初期のヒープメモリを64MBにする。JVMが動くとき最初に確保されるメモリ。
  • -Xmx128m・・・ヒープメモリの使用は最大で128MBにする。
  • -XX:MaxMetaspaceSize=128m・・・クラスロードに使用する領域を128MBに制限する。

setenv.sh は .sh の拡張子がついていますが、先頭行に #!/bin/sh の記載はしません。これは setenv.sh がTomcatの起動スクリプト( catalina.sh )から source により読み込まれるためです。これにより setenv.sh は実行権限(x)もいりません。読み取り権限(r)だけあればよいです。

また、使用するメモリが小さいためスレッド数の調整もしておきます。conf ディレクトリにある server.xml に maxThreads の追記をします。アクセス数が少ないことを想定して maxThreads を50にしておきます。


<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"
    maxParameterCount="1000"
    maxThreads="50"
    />

Tomcatを起動します。起動時に設定が表示されます。


$ ./startup.sh 
Using CATALINA_BASE:   /home/user/tomcat-09.0.106
Using CATALINA_HOME:   /home/user/tomcat-09.0.106
Using CATALINA_TMPDIR: /home/user/tomcat-09.0.106/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/user/tomcat-09.0.106/bin/bootstrap.jar:/home/user/tomcat-09.0.106/bin/tomcat-juli.jar
Using CATALINA_OPTS:   -Xms64m -Xmx128m -XX:MaxMetaspaceSize=128m
Tomcat started.

この設定は小規模アプリで接続ユーザー数も少ない場合ですので、各自の環境にあわせて調整してください。

なお今回はヒープサイズの調整のために setenv.sh に設定を記載しましたが、GC関連の設定などの際にも利用できます。