はてなから WordPress に移行準備中です。
パーマリンク(URL)の維持、そしてデータの整形と移行が簡単にできるようになりましたので次はテーマ開発です。
01ここまでの成果
パーマリンクの維持
検索エンジンに登録された URL を WordPress に移行しても「はてなブログ用リライトルールプラグイン」でそのまま維持します。
データ移行
はてなブログのエクスポートファイル内のフォトライフの画像を WordPress 内にコピーし、同時にファイル内の URL 変更やその他の整形をし、WordPress にインポート可能ファイルとして保存します。
02WordPress のローカル開発環境
仕事場と自宅でデータを共有する方法とテーマ開発の方法を理解するのに1週間も費やしてしまいました。
シンボリックリンクではうまくいかない
個人が2ヶ所でデータを共有したいというレベルの話ですので、作業が済んだたらいちいちアップロードしたり、git したりするという面倒な方法は除外するとしますと、Dropbox にデータを置いて共有する方法しか思いつきません。
で、WordPress のテーマディレクトリと mysql のデータディレクトリを Dropbox に置いて、それぞれシンボリックリンクで WordPress を立ち上げられないかとやってみたのですが、どうしてもうまくいきません。
ネットにはうまくいっている方もいるようですが、私の環境では権限や所有者をあれこれいじってもダメでしたのであきらめました。
Docker の volumes で Dropbox をマウントする
あれこれググっているうちに Docker の volumes で Dropbox のディレクトリをマウントできるのではないかと思い、やってみましたらうまくいきました!
初めての Docker ですので、インストール等は Docker-Docs を基本にしています。
03Docker, Docker-compose のインストール
仕事場は Windows10 がメインですので Docker Desktop for Windows になりますが、WSL2 を入れていますので WSL2 上で Docker が走るということになるのでしょうか。よくわかりませんので、とにかく指示に従ってインストールしていきます。
Docker Desktop WSL 2 バックエンド
上記からダウンロードし、起動しますと、すでに WSL2 にチェックが入っています。
解凍しています。思ったよりも時間がかかります。
完了しますとログアウトを促されますのでログインし直します。
自動で立ち上がったのか、ショートカットをクリックしたのか忘れましたが、このダイアログになりますので同意します。
Docker Engine が起動します。設定の General とか Resources を確認しましたが何も変更していません。WSL2 で Docker が動くようになっています。
WSL2 からバージョンを確認しています。すでに昨日、自宅の Ubuntu には Docker をインストールして WordPress の立ち上げもやっていますので、インストールされていれば問題ないだろうということで、ここでは hello-world コンテナでのチェックもやっていません。
Docker-compose の最新版をインストールします。
04Docker + WordPress + Dropbox
Docker-compose を使って WordPess と Mysql の環境を構築します。
WSL2 上にプロジェクト用ディレクトリをつくり、そこに docker-compose.yml を起き、docker-compose up -d
と打って起動し、ブラウザで http://localhost:8000
にアクセスしますと WordPress のインストールページが立ち上がります。データベース設定はありませんのでサイト設定だけです。
docker-compose.yml
Mysql のデータディレクトリと WordPress のドキュメントルートを Dropbox に置く設定です。
version: '3' services: db: image: mysql:5.7 volumes: - /mnt/c/Users/(ユーザー名)/Dropbox/WordPress/mysql:/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" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: - /mnt/c/Users/(ユーザ名)/Dropbox/WordPress/html:/var/www/html
これで Docker のコンテナ WordPress と Mysql が立ち上がります。
開発はこれからですので何か問題が出るかも知れません。また、wp-content ディレクトリだけ Dropbox のディレクトリをマウントすることも可能なようです。その場合の docker-compose.yml は、
volumes: - ./html:/var/www/html - /mnt/c/Users/(ユーザ名)/Dropbox/WordPress/html/wp-content:/var/www/html/wp-content
とします。ただ、いきなりこの設定では起動せず、一度 WordPress を WSL2 のプロジェクトディレクトリで起動してから、wp-content ごと Dropbox にコピーして、あらためて docker-compose.yml を書き直して起動すればうまくいくようです。
開発はこれからですので、これでうまく行くかどうか、問題があればまだ報告します。