2023/03/28(Tue) 19:31:54
以前、知人から WordPress の使い方を教えて欲しいと相談があったので、さくらインターネットに WordPress をインストールしてブログを始めました。その時、知人がカスタムドメインを利用していました。お名前.com で .com ドメインの1年間の更新料金を調べてみると1287円 ~ と安いのに驚きました。1個目の登録料金は0円なので 2022/08/06(Sat) に購入してみました。そのまま塩漬けにしていたのですが、試しに iCloud+ のカスタムメールドメインに設定してみました。次回のブログに書きたいと思います。
お名前.com に500円のクーポンを貰ったので、.jp ドメインを登録してみました。お名前.com にログインして、.jp ドメインの1年間の更新料金を調べてみると 3686円でした。予想した価格と違ったので、自動更新は解除しています。
.com ドメインは所有したいので、下記のように1年間更新してみました。
.net ドメインにも興味があったので、更に登録してみました。.com ドメインを更新したおかげか、登録料は無料でした。1年間の更新料金も妥当なので保持するつもりです。
また、メールとサイトのドメインを分離して運用しようと思っています。
2023/03/28(Tue) 19:33:04 お名前.com サイトに表示されている1年間の更新料金目安 更新料金 .com 1,287円~ .net 1,507円~ .jp 1,276円~ 2023/03/28(Tue) 19:33:04 実際の1年間のドメイン更新料金 kyoshiaki.com ドメイン更新1年 1,408 円 (税込) Whois情報公開代行 0円 (税込) サービス維持調整費 ※ 253 円 (税込) お支払い金額 1,661 円 (税込) kyoshiaki.net ドメイン更新1年 1,628 円 (税込) Whois情報公開代行 0円 (税込) サービス維持調整費 ※ 293 円 (税込) お支払い金額 1,921 円 (税込) kyoshiaki.jp ドメイン更新1年 3,124 円 (税込) Whois情報公開代行 0円 (税込) サービス維持調整費 ※ 562 円 (税込) お支払い金額 3,686 円 (税込)
さくらインターネットに公開している WordPress やホームページを購入したカスタムドメインに変更しようと模索していました。
一度公開した WordPress サイトのドメインを変更することは、難易度が高そうですが、さくらインターネットの WordPress サイトを Docker 上に再現し、WP-CLI を使ってデータベースを書き換えてみた結果、上手くいきそうです。
大惨事になる可能性もありますが!
2023/03/28(Tue) 19:35:06 kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築 https://github.com/kyoshiaki/docker-compose-wordpress 2023/03/28(Tue) 19:35:45 WP-CLI | WP-CLI https://wp-cli.org/
ドメイン変更の検証のために、上記 URL で公開している docker-compose.yml に WP-CLI を下記 URL を参考に追加してみました。
2023/03/28(Tue) 19:36:40 WP-CLIのDocker公式イメージ「wordpress:cli」の使い方 | SIOS Tech. Lab https://tech-lab.sios.jp/archives/25369
M2 Pro Mac mini (2023) でコマンド docker-compose up -d を実行すると下記エラーが出るので、
❯ docker-compose up -d [+] Running 0/1 ⠙ db Pulling 3.1s no matching manifest for linux/arm64/v8 in the manifest list entries
docker-compose.yml ファイルの image: mysql:5.7 を image: mysql:latest に変更しました。
===== docker-compose.yml ===== version: '3.3' services: db: image: mysql:5.7 ↓ version: '3.3' services: db: image: mysql:latest
通常、WP-CLI をインストールし、WordPress のデーターベースを wp コマンドを使って変更することになります。
さくらインターネットでの場合、WP-CLI コマンド wp はあらかじめインストールされています。
さくらインターネットに ssh ログインし、WordPress のディレクトリに移動した後、下記のように wp コマンドを実行するだけです。
下記例、wp db search kyoshiaki.sakura.ne.jp コマンドは、データーベースに、文字列 kyoshiaki.sakura.ne.jpが含まれるレコードを表示しています。
=== ssh === % cd wp % pwd /xxxx/xxxx/wp % ls index.php wp-cron.php license.txt wp-includes readme.html wp-links-opml.php wp-activate.php wp-load.php wp-admin wp-login.php wp-blog-header.php wp-mail.php wp-cli.local.yml wp-settings.php wp-comments-post.php wp-signup.php wp-config-sample.php wp-trackback.php wp-config.php xmlrpc.php wp-content % wp db search kyoshiaki.sakura.ne.jp wpxxxxxacomments:comment_author_url 8:http://kyoshiaki.sakura.ne.jp/osx/index.html wpxxxxxaoptions:option_value 1:https://kyoshiaki.sakura.ne.jp/wp wpxxxxxaoptions:option_value 2:https://kyoshiaki.sakura.ne.jp/wp wpxxxxxaoptions:option_value 408:}}s:16:"background_image";s:84:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/uploads/2020/12/advent-57 wpxxxxxaoptions:option_value 410:;s:17:"top_slide_image_1";s:91:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/themes/lightning/assets/i [...] ;s:17:"top_slide_image_2";s:91:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/themes/lightning/assets/i [...] g";s:15:"top_slide_url_2";s:33:"https://kyoshiaki.sakura.ne.jp/wp";s:22:"top_slide_text_title_2";s:18: wpxxxxxaoptions:option_value ︙ wpxxxxxaposts:guid 1322:https://kyoshiaki.sakura.ne.jp/wp/?p=1322 wpxxxxxaposts:guid 1323:https://kyoshiaki.sakura.ne.jp/wp/?p=1323 wpxxxxxaposts:guid 1324:https://kyoshiaki.sakura.ne.jp/jwp/?p=1324
2023/03/28(Tue) 19:39:17 kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築 https://github.com/kyoshiaki/docker-compose-wordpress
上記に公開した docker-compose.yml の場合、
2023/03/28(Tue) 19:40:40 wordpress - Official Image | Docker Hub https://hub.docker.com/_/wordpress 2023/03/28(Tue) 19:41:14 wordpress/Dockerfile at 809519cc86bee0d6c7f2743976a850267983e2c2 · docker-library/wordpress https://github.com/docker-library/wordpress/blob/809519cc86bee0d6c7f2743976a850267983e2c2/cli/php8.2/alpine/Dockerfile ENTRYPOINT ["docker-entrypoint.sh"] USER www-data CMD ["wp", "shell"]
WP-CLI コンテナは、実行されると上記 Dockerfile の CMD [“wp”, “shell”] より、wp コマンドをシェルモードで起動します。
CMD 命令の詳細は、下記ページを参考にしてください。
2023/03/28(Tue) 19:42:07 Dockerfile reference https://docs.docker.com/engine/reference/builder/
CMD
The CMD instruction has three forms:
・CMD [“executable”,”param1″,”param2″] (exec form, this is the preferred form)
・CMD [“param1″,”param2”] (as default parameters to ENTRYPOINT)
・CMD command param1 param2 (shell form)
There can only be one CMD instruction in a Dockerfile. If you list more than one CMD then only the last CMD will take effect.The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.
If CMD is used to provide default arguments for the ENTRYPOINT instruction, both the CMD and ENTRYPOINT instructions should be specified with the JSON array format.
CMD
=== docker-compose.yml === version: '3.3' services: db: image: mysql:latest volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" ︙ cli: image: wordpress:cli container_name: cli volumes_from: - wordpress depends_on: - db - wordpress command: "--info" user: xfs environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress WORDPRESS_TABLE_PREFIX: wp_ volumes: db_data: {}
デフォルトだと上記 docker-compose.yml の cli コンテナの command: “–info” より、シェルモードで立ち上がっている wp に引数 –info が渡されます。
データベースを書き換えるには、docker-compose コマンドで cli コンテナを削除して、wp コマンドの引数を渡し、cli コンテナを再作成して起動させます。
❯ docker-compose run --rm cli search-replace 'Hello world' 'Welcome WordPress'
上記 docker-compose コマンドを実行すると下記結果より、データベースのテーブル wp_posts、カラム post_title の ‘Hello world’ の文字列が1箇所 ‘Welcome WordPress’ に変更されています。
❯ docker-compose run --rm cli search-replace 'Hello world' 'Welcome WordPress' [+] Running 2/0 ⠿ Container docker-compose-wordpress-db-1 Running 0.0s ⠿ Container docker-compose-wordpress-wordpress-1 Running 0.0s +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_commentmeta | meta_key | 0 | SQL | | wp_commentmeta | meta_value | 0 | SQL | | wp_comments | comment_author | 0 | SQL | ︙ | wp_posts | post_title | 1 | SQL | ︙ | wp_users | display_name | 0 | SQL | +------------------+-----------------------+--------------+------+ Success: Made 1 replacement.
WP-CLI コマンドの詳細については、下記ページの ‘お手軽 Docker コマンド起動 Ruby スクリプト docker.rb の WP-CLI コマンド’ を参照してください。
2023/03/28(Tue) 19:46:11 kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築 https://github.com/kyoshiaki/docker-compose-wordpress#readme 2023/03/28(Tue) 19:46:34 kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築 https://github.com/kyoshiaki/docker-compose-wordpress#%E3%81%8A%E6%89%8B%E8%BB%BD-docker-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E8%B5%B7%E5%8B%95-ruby-%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88-dockerrb-%E3%81%AE-wp-cli-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89
2023/03/28(Tue) 19:47:01 kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築 https://github.com/kyoshiaki/docker-compose-wordpress
上記の docker-compose.yml とお手軽 Docker コマンド起動 Ruby スクリプト docker.rb を利用すれば、気軽にデータベースを変更できます。
失敗しても、docker-compose down を実行した後、忘れずに Volume を docker.rb の 6番、docker volume rm docker-compose-wordpress_db_data を使用して削除すれば、docker-compose up -d で何度でも WordPress のインストールから、やり直せます。