0からローカルでWordPressテーマ開発する最小限未満の(時には正確さを欠いている)手順と説明。
より正確なものはリンクを張っているので資料を読んでください。
mkdir my_wordpress
cd my_wordpress
curl https://gitignore.io/api/vim,macos,wordpress,visualstudiocode > .gitignore
https://docs.docker.com/compose/wordpress/
docker-compose up -d
これでコンテナが立ち上がって、ブラウザからWordPressが見られるはずなので確認する。
http://localhost:8000
https://help.github.com/ja/github/creating-cloning-and-archiving-repositories/creating-a-new-repository
https://help.github.com/ja/github/importing-your-projects-to-github/adding-an-existing-project-to-github-using-the-command-line
echo "# my_wordpress" > README.md
git init
git add .
git commit -m "initial commit"
git remote add origin ここにゆーあーるえる
git push -u origin master
長ったらしい名前が付いているので、docker-compose.yml
を開いて、それぞれのコンテナにcontainer_name
をつける。
それぞれcontainer_name: mysql
と container_name: wordpress
にした。
services:
db:
container_name: mysql
image: mysql:5.7
...
wordpress:
container_name: wordpress
depends_on:
- db
image: wordpress:latest
...
アカウント作成をして、Hello World記事が見られるところまで行くと、MySQLデータベースに中身が入っている。
これごとGitHubにあげてしまいたい。
mkdir mysql
docker exec mysql /usr/bin/mysqldump -u wordpress -pwordpress wordpress > mysql/dump.sql
これでコンテナ内でダンプを取るコマンドが実行されて、SQLでデータベースの中身が出力されているので確認する。
cat mysql/dump.sql
最後にgitでデータベースを管理できない設定にしてしまったので、以下を削除してできるようにする。
*.sql
*.sqlite
MySQLのDocker公式イメージには便利な仕組みが用意されている。
それを利用するため、以下をdocker-compose.yml
のmysql
コンテナのvolume
に書き足す。
volumes:
- db_data:/var/lib/mysql
- ./mysql:/docker-entrypoint-initdb.d
これでDBごとGitHubで共有できるようになったので、ローカルからボリュームを一回消して、また同じ画面に立ち上がるかを確認する。
docker-compose down -v
docker-compose up -d
これを実行してまた先程と同じ画面が表示されたらOK。
つまり、コンテナを消しても編集内容が消えず、GitHubにも上げられるようにする。
docker-compose.yml
のwordpress
コンテナのvolume
に書き足す。
image: wordpress:latest
volumes:
- ./wordpress/themes:/var/www/html/wp-content/themes/
デフォルトのテーマがすべてローカルにもできるので確認する。
mkdir -p wordpress/themes
docker-compose down
docker-compose up -d
ls wordpress/themes
使いたい親テーマがあるならそれもここに入れる。
cd wordpress/themes
mkdir my_theme
cd my_theme
まずWordPressテーマとして必要最低限のものを用意する。
/*
Theme Name: My Theme
Author: Watashino Namae
Version: 1.0
*/
<h1><?php echo get_bloginfo('name'); ?></h1>
これで管理画面から自分のテーマを選択できるようになったので確認する。
http://localhost:8000/wp-admin/themes.php
さくらのレンタルサーバーやら選択肢はあるが、今回はのGCPの無料枠で公開する。
gcloud compute instances create wordpress-tutorial --zone=asia-northeast1-a --machine-type=f1-micro --image-family=ubuntu-minimal-1810 --image-project=ubuntu-os-cloud
gcloud compute instances list
gcloud compute firewall-rules create wp-default --allow tcp:8000 --source-tags=wordpress-tutorial --source-ranges=0.0.0.0/0
gcloud compute ssh wordpress-tutorial --zone=asia-northeast1-a
git clone 自分のリポジトリのゆーあーるえる
cd 自分のリポジトリのでぃれくとり
今作ったGCPのインスタンス上でDocker Compose、gitあたりのインストールをする。
ドメインレジストラではDNSの設定をして、このGCPインスタンスのEXTERNAL_IPへドメインを向ける。
WordPressのデータベースの設定でlocalhost:8000
が現在のサイトのURLおよびホームページとして設定されている。
このサイトを公開して、用意したドメインで運用するとなるとこれを書き換える必要がある。
いくつか方法はあるが、今回はシェルコマンドでダンプファイルにあるlocalhost:8000
を移行先ドメインに置き換える。
sed -i 's/localhost:8000/移行先ドメインどっとこむ/g' mysql/dump.sql
docker-compose up -d
以降は、新機能ならfeature/新機能名
、修正ならfix/修正対象
などと名付けたブランチを切って開発していくと良い。
git branch feature/新機能名
git checkout feature/新機能名
開発をする
git add .
git commit -m "新機能概要"
git push -u origin feature/新機能名
変更をサーバーに上げたい時にはまず変更がGitHubに上がっているのを確認してから、サーバー上でpullして持ってくる。
本番サーバーならmaster
ブランチを使って、開発サーバーなら任意のブランチやdevelop
などと名付けた別のブランチを使うと良い。
gcloud compute ssh wordpress-tutorial --zone=asia-northeast1-a
cd 自分のリポジトリのでぃれくとり
git fetch
git checkout feature/新機能名
docker-compose restart
- 全般
- 任意の入力欄がほしい
- SEO
- CSS全般
- カルーセル
- SCSSを使いたい
7. WordPressのテーマが入ったthemes
ディレクトリへの変更を永続化する。
これを参考にtheme
と一緒にplugin
も作る。
- 画像アップロード上限: https://tech.recruit-mp.co.jp/infrastructure/post-13086/#h-1 「ファイルアップロードサイズの上限値を設定する」
- 日本語: https://tech.recruit-mp.co.jp/infrastructure/post-13086/#h-2
- はやさ: https://kusanagi.tokyo/cloud/kusanagi-runs-on-docker/
- HTTPS: https://github.com/hoto17296/docker-certfront
- phpmyadmin: https://github.com/phpmyadmin/docker/blob/master/docker-compose.yml
それぞれ
docker-compose.yml
に追加する。