ヤドカリエンジニアリング

ヤドカリはずっと借家

WordPressの移行はSSHをおすすめしたい話

WordPressが登場した当初は、まだMySQL冗長化、高可用性があまり問題になっていなかった時代のもので、 現在でも個人レベルで「飛んだらおしまい」な状況が多くあるので最低限のバックアップ、また「飛ばせない対策」のメモを残しておく。

WordPressのバックアップ

サーバにSSH接続でログイン

$ ssh -i {ログインユーザ名}@{接続先アドレス} クライアントPCに秘密鍵(pem,rsa)が登録されていて、パスワード無しでログインできる場合

データベースのエクスポート・バックアップ

backupディレクトリに移動

$ mysql -u {データベース名} -h {データベースホスト or IP} -p {DBユーザ名}

DBの接続設定は wp-config.php に書いてある。

/** WordPress のデータベース名 */
define('DB_NAME', 'データベース名');

/** MySQL のユーザー名 */
define('DB_USER', 'ユーザー名');

/** MySQL のパスワード */
define('DB_PASSWORD', 'パスワード');

/** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */
define('DB_HOST', 'ホスト名');

可能ならDB一式をdump

$ mysqldump --single-transaction -u {データベース名} -h {データベースホスト or IP} -p {DBユーザ名} > {出力するファイル名}.sql

新サーバーでWordPress初期設定、もともと使っていたプラグインを設定

そのまま

新サーバーでデータベースのインポート

mysql -u {DBユーザ名} -h {データベースホスト or IP} -p {データベース名} < {インポートするファイル名}.sql

WordPressでデータベース内のドメイン・フルパスを新サーバー用に書き換え。

update wp_comments set comment_author_url = replace(comment_author_url, '{置き換え前のドメイン}', '{置き換え後のドメイン}'));
update wp_options set option_value = replace(option_value, '{置き換え前のドメイン}', {置き換え後のドメイン}'));
update wp_postmeta set meta_value = replace(meta_value, '{置き換え前のドメイン}', '{置き換え後のドメイン}'));
update wp_posts set post_content = replace(post_content, '{置き換え前のドメイン}', '{置き換え後のドメイン}')), guid = replace(guid, '{置き換え前のドメイン}', '{置き換え後のドメイン}'));

基本は上記のテーブルで良いが、プラグインが追加のテーブルを生成している場合は、それらも復元

(例)

update wp_ewwwio_images set path = replace(path, '{置き換え前のドメイン}', '{置き換え後のドメイン}');

新サーバーで、画像が飛んでいたりする場合もあるので、リンク切れをチェックする。

www.dead-link-checker.com

番外編

物理的に独立したサーバーが用意できるなら頑張って自力で冗長化する

nullpopopo.blogcube.info

お金で解決する

AWSで高可用性、負荷分散などをちゃんとやる

qiita.com

レンタルサーバーをお金で借りて、WordPressを設置するなら、AWSに払ったほうがいいんじゃないという考え。 大丈夫、課金が心配になるほど、それほど多くのWordPressサイトは見られていない。

お金も手間もかけずに解決する

はてなブログ」は国内のエンジニアから高評価。 集客にも強い。 MarkDownで記述できる。

以上、お疲れさまでした。

(雑記)地方で働くということ

首都圏で働いたことしか無い人間が 地方で暮らすというのは、なかなか困難なことだと、今更ながら感じている。

ひとまず、地方の仕事はWeb制作会社のプログラマ、インフラ寄りの仕事を請けることにした。 しかし、何か直接的に関わることが出来ないか模索中。 仕事で言えば都内のほうが断然便利な状況。

しかし渋谷、恵比寿、新宿区内、港区内の仕事しかない状況。

これは住むには難しい。 日比谷線は一番便利だが、どこなら住めるというのか。北千住? お客さんは中目黒、恵比寿、広尾、六本木あたりだし、そうなると家賃20万コース。 以前、結構物件を調べたことがあって、御徒町~北千住は、ある意味、それぞ江戸の密エリアだし、なんともならないかもしれぬ。

Android案件のお話がありました。

おはようございます。 しばらくWebフロントエンドとiOSアプリ開発をやっていたのですが、 この度、Android案件のお話がありました。

なかなか、ピンポイントの案件がなかったのでありがたいです。

もちろん、特別にJavaを使う理由がない限りはKotlinですよね。

契約まだだけど。

作って学ぶAndroidアプリ開発[Kotlin対応]

作って学ぶAndroidアプリ開発[Kotlin対応]

  • 作者:有山 圭二
  • 発売日: 2020/04/17
  • メディア: 単行本(ソフトカバー)

Mac OS Big SurでGO言語の開発環境を作る手順

GOを使う必要があったため、Mac OS Big Surで環境を作りました。

内容

  • goenvのインストール
  • goのインストール

goenvのインストール

当初、brew install goenvでインストールしてみたいのですが、 バージョンが服買ったため、Gitでインストールしました。

% git clone https://github.com/syndbg/goenv.git ~/.goenv

シェルはzshを使っているので、環境変数を設定します。

% echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.zshrc
% echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.zshrc
% echo 'eval "$(goenv init -)"' >> ~/.zshrc

シェルを再起動し環境変数を反映します。

% exec $SHELL

goenvのバージョンを確認します。

% goenv -v
goenv 2.0.0beta11

goのインストール

インストール可能なgoのバージョンを確認します。

% goenv install -l
Available versions:
  1.2.2
  1.3.0
    :
  1.15.4
  1.15.5
  1.15.6
  1.16beta1

バージョンを指定してgoをインストールします。

% goenv install 1.15.6

シェルはzshを使っているので、環境変数を設定します。

% echo 'export PATH="$GOROOT/bin/$PATH"' >> ~/.zshrc 
% echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.zshrc 
% exec $SHELL

ここまでで、~/.zshrcには、以下の設定が追加されているはずです。

export GOENV_ROOT="$HOME/.goenv"
export PATH="$GOENV_ROOT/bin:$PATH"
eval "$(goenv init -)"
export PATH="$GOROOT/bin/$PATH"
export PATH="$PATH:$GOPATH/bin"

使用するGOのバージョンを指定します。

% goenv global 1.15.6

GOのバージョンを確認します。

% go version
go version go1.15.6 darwin/amd64

任意にプロジェクトの場所を指定したいのでGo Modulesを設定します。 まずは、Go Modulesの設定を確認します。

% go env GO111MODULE

設定されていればonと表示されますが、表示されないので設定します。

% go env -w GO111MODULE=on
% go env GO111MODULE
on

ここまででGOの環境ができているので、 go mod init <プロジェクト名>で進めていきましょう。