前回、TiDBクラウド(Serverless)にWordPressのDB(MySQL)をバックアップしましたが、直接このバックアップを使ってWordPressが使えるかやってみました。まずは以下のようにdocker-compose.ymlに記述するDBの設定をTiDBのものに変更。また、イメージが古く(bullseyeがベース)、証明書が古かったので、docker pull wordpress:latest
で最新版(bookwormがベース)にイメージを更新しました。ちなみにこちらによるとbullseyeは2024年8月14日がEOL(通常のサポート期間の終了)だったようです。
services:
wordpress:
container_name: wordpress
image: wordpress:latest
environment:
WORDPRESS_DB_HOST: xxxxxxxxxxxx.prod.aws.tidbcloud.com:4000
WORDPRESS_DB_USER: xxxxxxxxxxxx.root
WORDPRESS_DB_PASSWORD: xxxxxxxxxxxx
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
restart: always
ports:
- "80:80"
volumes:
db_data:
wordpress:
さらに、wordpressコンテナに入って/var/www/html/wp_config.phpに以下を追記します。
/** Use SSL for TiDB */
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
これだけだと投稿一覧が表示されませんでした。こちらを参考にTiDB側の設定を変更します。
mysql -h tidbのホスト名 -P 4000 -u tidbのユーザー -p -e "SET GLOBAL tidb_enable_noop_functions=1"
以上の手順で動くようになりました。
コメント