久しぶりにWordPressの開発環境を作る
テーマをGitで管理したいのとWordMove導入してみたい
WordMoveインストールしようとして
$ gem install wordmove
したらパーミッションで怒られたので
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
とりあえずsudoした
movefile.ymlを設定して
wordmove pull -t
したら
▬▬ Using Movefile: ./movefile.yml ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Traceback (most recent call last):
8: from /usr/local/bin/wordmove:23:in <main>' 7: from /usr/local/bin/wordmove:23:in
load'
6: from /Library/Ruby/Gems/2.6.0/gems/wordmove-5.2.1/exe/wordmove:6:in <top (required)>' 5: from /Library/Ruby/Gems/2.6.0/gems/thor-0.20.3/lib/thor/base.rb:466:in
start'
4: from /Library/Ruby/Gems/2.6.0/gems/thor-0.20.3/lib/thor.rb:387:in dispatch' 3: from /Library/Ruby/Gems/2.6.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in
invoke_command'
2: from /Library/Ruby/Gems/2.6.0/gems/thor-0.20.3/lib/thor/command.rb:27:in run' 1: from /Library/Ruby/Gems/2.6.0/gems/wordmove-5.2.1/lib/wordmove/cli.rb:81:in
pull'
/Library/Ruby/Gems/2.6.0/gems/wordmove-5.2.1/lib/wordmove/deployer/base.rb:26:in `deployer_for': No valid adapter found. (Wordmove::NoAdapterFound)
と怒られた。
sshでコケてるっぽかったのでmovefile.ymlでコメントしていた
# ssh:
# host: "host"
# user: "user"
の部分を#を消してサーバーの環境のhostとuserを設定した。sshのconfignに設定が書いてあれば大丈夫的な話を見かけたので勝手に読み込んでくれるだろうと思っていたがそんなことはない様子。
設定したらエラーが変わってこうなった。
MyiMac:my-wordpress haru$ wordmove pull -t
▬▬ Using Movefile: ./movefile.yml ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▬▬ Pulling Themes ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
remote | get_directory: [secret] [secret] /wp-content/* .git/ .gitignore .gitmodules .env node_modules/ bin/ tmp/* Gemfile* Movefile movefile movefile.yml movefile.yaml wp-config.php wp-content/*.sql.gz .orig docker-compose.yml / /wp-content/themes/ /wp-content/
ℹ️ info | rsync --progress -e 'ssh testewtetrst@[secret]' -rlpt --compress --omit-dir-times --delete --include /wp-content/themes/ --include /wp-content/ --exclude /wp-content/\* --exclude .git/ --exclude .gitignore --exclude .gitmodules --exclude .env --exclude node_modules/ --exclude bin/ --exclude tmp/\* --exclude Gemfile\* --exclude Movefile --exclude movefile --exclude movefile.yml --exclude movefile.yaml --exclude wp-config.php --exclude wp-content/\*.sql.gz --exclude \*.orig --exclude docker-compose.yml --exclude /\* :[secret]/ [secret]
testewtetrst@hogeserver.jp: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-54.120.1/rsync/io.c(453) [receiver=2.6.9]
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
がsshしてパスワード間違えたときも同じのがでるのでsshでつなぎに行こうとしてパスワード入れられないのが原因な気がする。wrodmoveで認証すっ飛ばすことができればいけるか?
sshのconfigに
AddKeysToAgent yes
UseKeychain yes
を追加して一度パスワードを入力したらそのあとは
パスワードを入力しないでも行けるようになり
wordmove pull -t が成功した
とりあえずテーマを引っ張ってくることができたので試しにローカルにまるまる環境をコピーしてみようとおもい
wordmove pull --all
してみたら
sh: mysqldump: command not found
で怒られた。まさかmysql入ってないの?と思って検索してみたらMAMPの中にしか存在しなかった。まじかよ。
homebrewでmysqlをインストールしようとしてまずhomebrewをupdateしたら長い間触ってなかったので更新に管理時間がかかる
色々やってたらページが開かなくなった。。。localhostから応答なしになる・・・作り直すか…
こんどはこの方法を参考にする
Docker-composeで最強(自分史上)のWordPress開発環境を作る
wordmove pull -t
でローカルにテーマひっぱてくるのはできた
DBもローカルに持ってこようと思ったがmixhostはMySQLをセキュリティの問題から切っているらしい。
リモート環境からMySQLデータベースに接続する方法
sshで直接mixhostに入ってmysqldumpコマンドでエクスポートしてきたものをインポートしたら行けると思って試してみたが単純にドメイン名をlocalhost:8080に置き換えただけではうまくいかなかったので一旦そこまでで深追いしなかった。今のところDBまで実環境と同じようにしなくても問題がないため。
調べたらmixhostでwordmoveを使ってmysqldumpまでできたっていう記事を見つけた。
Movefileの「production」側にある「ssh」の「host」を「FTPホスト名(プライマリ ドメイン)」にしてしまい、ダウンロードすることができませんでした。エックスサーバーと違い、mixhostの場合はFTPSホスト名の「サーバー名(jp3など).mixhost.jp」などのようです。
とあったけどそれと同じようにしても結局ダメだった。もしかすると昔はできたのかもしれないけどセキュリティが強化されて今はできなくなったのかも?
mixhostでWordMoveを試してみた