はい、どうもこんにちは。コロナが大変な中家で充実して作業をできております。sgwですw

と言ってもワードプレスのサイト量が増えるといくらvagrantを圧縮しても結局大きくなってくるのできりがないです。今日はいろいろ調べてやっとこLocal by FlywheelでWordmoveできるようになったので書いていきます。

Local by Flywheelとは

今回はここはだいぶ省きますがワードプレスのための仮想サーバーを簡単に作ってくれるGUIのアプリです。ググったら出てくるので基本的な使い方はググってください。

Wordmoveとは

ローカル開発環境で作ったワードプレスのサイトをコマンドライン1つでリモート(本番サーバー)にアップできます。sshとftpでつなぐことができるのですが、今回はftpでいきます。(セキュリティとか知りませんw)

必要な物
  • Local by Wheel 3.30
  • Macのターミナルapp

公式サイトに直接だとバージョン5が取れるんですがそれはまだベータらしくてsshとかrootとかで仮想環境に入れないので使えませんwなのでバージョン3を上記のリンクから取ってください。

Local by Flywheel 起ち上げます。

基本的なGUIの使い方とかはこちらをチェック。

テストサイトを作成してページが開ける状態にしてください。

そこから右クリックでOpen Site SSHをクリックします。するとターミナルが開きます。

んで今から順番に上からコマンドを実行していきます。

apt update
apt upgrade

この辺で”Do you want to continue? [Y/n]”が出てくるのですがもちろYをタイプしてエンターを押してください。今後も出てくることがあるのですが同じくY押してエンターで進んで下さい。

apt-get install build-essential git wget rubygems
wget -O ruby-install-0.7.0.tar.gz https://github.com/postmodern/ruby-install/archive/v0.7.0.tar.gz
tar -xzvf ruby-install-0.7.0.tar.gz
cd ruby-install-0.7.0/
make install
ruby-install
ruby-install --system ruby 2.6

最後結構時間かかってしまうのですがこれでrubyの2.6バージョンが手に入るはずです。チェックする場合は

ruby -v

とかで一応チェックしてみてください。下記のようなコマンドが表示されれば、rubyインストール完了です。

ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux]

一応ですがここでターミナルを閉じでもう1度右クリックでOpen Site SSHをクリックしてください。これです。

んでまたコマンド。

apt-get install -y lftp
cd /root/
apt-get install vim
vi .lftprc
set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-allow yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
set ssl:verify-certificate no

esc => :(コロン) => w => q をタイプしてエンターを押して保存する。

cd ../
gem install wordmove
cd /app/public
wordmove init

これでmovefile.ymlが出来ます。デフォルトだとすべて小文字でファイルの名前が作られますが個人的にはMovefileとファイルの最初の名前を大文字にしたほうがエラーが少ない経験ですw

それとinitで作ったファイルではdatabaseのlocalやrootの部分にクオテーションが無く最初変なエラーが起きたのでもしかしたらつける必要があるのかもしれないです。下記に自分が使ってるテンプレートを載せたのでコピペして使って下さい。もちろん、サーバー等は自分の作成下名前に変更、そして本番環境側のサイトの方も書き直して下さい。

#ここから下をコピペ
global:
  sql_adapter: default

local:
  vhost: "http://testsite.lo/"
  wordpress_path: "/app/public" # use an absolute path here

  database:
    name: "local"
    user: "root"
    password: "root" # could be blank, so always use quotes around
    host: "localhost" #ローカルサイトのDATABASEタブのRemote Host

production:
  vhost: "https://testsite.com/"
  wordpress_path: "/" # use an absolute path here

  database:
    name: "testsite"
    user: "testsite"
    password: "testsite"
    host: "localhost"

  exclude:
    - ".DS_Store"
    - ".git/"
    - ".gitignore"
    - ".sass-cache/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "movefile.yml"
    - "wp-config.php"
    - "wp-content/*.sql"
    - "node_modules/"

  ftp:
    user: "testsite"
    password: "testsite"
    host: "111.111.111.1"
    passive: true
    scheme: "ftp"

movefileの詳しい書き方はこちら。

これで一応ftpでファイルはできるようになりますがデータベースで謎のエラーがおきます。とりあえず一度ターミナルを閉じてまた右クリックからOpen SSHをクリック。

cd /app/public

試しにテーマとデータベースだけpullしてみます。

wordmove pull -t

すると下記のようなコードが連続で表示されます。Transferringのみだと失敗の可能性大ですが、making directoryが出てれば大体成功です。ここでテーマをチェックしてみます。

Transferring file `twentytwenty/style.css'     
Making directory `twentytwenty/assets' 
wordmove pull -d

データベースの場合下記のようなエラーが出ます。

invalid byte sequence in US-ASCII (ArgumentError)

データベース対策

ここのサイトがすごい参考になりました。とってもありがとう;;

ってなわけで先程のエラーの上を見ると

/usr/local/lib/ruby/gems/2.6.0/gems/wordmove-5.0.2/lib/wordmove/sql_adapter/default.rb:45:in `gsub!'

みたいな感じでここにエラーがありますよと出てきます。

なのでファイル名である、default.rbを省いた

/usr/local/lib/ruby/gems/2.6.0/gems/wordmove-5.0.2/lib/wordmove/sql_adapter/

このパスだけコピーしてcdしてここに行きます。

cd /usr/local/lib/ruby/gems/2.6.0/gems/wordmove-5.0.2/lib/wordmove/sql_adapter/

そしてvimで編集

vim default.rb

esc => :(コロン)set numberとタイプしてエンターを押すと行数が見れるようになるので44行目がちょうどスペースになってるので

sql_content.force_encoding("UTF-8")

を打ち込みます。

その後

esc => :(コロン) => w => q をタイプしてエンターを押して保存する。

ターミナルを閉じてまたlocal by wheelで右クリックOpen SSHをクリック。

cd /app/public

に移動してwordmoveでデータベースをpullしてみて下さい。

きっと成功するはず。

VCCWと違うとこ

めちゃくちゃ簡単にクローンできるのでこの先このめんどくさい作業をしなくて済みます。

クローンする方法

これは簡単。右クリックからcloneを選択してまつだけ。多分大本のcloneされる環境はスタート状態でしたほうがいいみたいです。

それとgulpとかbrowserifyとか使う場合は多分.local以外の.loとかにしないと遅くなるらしいので(browserifyの使用らしい)

ここを変更しておくとあとで楽。

そんなこんなで楽チンなWordPress開発環境を。

wordmoveの詳しい使い方についてはこちらから。

前書いたようにvccwでもいいですがvccw自体のアップデートはだいぶ前に終わってるので安定性の低さに欠けるしvirtualBoxって謎に圧縮しても肥大化していくんですよね。なのでこれを使えばこれからワードプレスたくさん保存して置かないといけないとかなっても大丈夫。そしてさらにwordmoveも使えるという素晴らしい環境。

それではSeee Yaaaaaaa!!!!