早崎トップ 研究(気候気象) 研究(大気汚染) データリスト Linux Tips Mac Tips

WordPress セットアップ・運用 (hysk)

WordPress セットアップ

MacBook 上で,研究情報管理・作業メモとしてWordPressを使用. OSバージョンアップや機材移設(新規MacBookへ移動)などのたびに,ほぼ必ずトラブルが生じる.

しかし,日常的なメモ書きとしては極めて使い勝手が良く,しかも3年以上にわたり使用しているので,今更捨てる事も出来ない. ならば,トラブルが生じる事を前提に使い続けるしかない.

各種パラメータ定義

以後の手順で利用する各種パラメータを記録.

  • WordPress 本体の所在: ~/Sites/WordPress
  • WordPress の設定: ~/Sites/WordPress/wp-config.php
  • MySQL上のWordPress DB名: WordPressDB
  • MySQL上のWordPress DBの管理アカウント: wp_admin
  • MySQL上のWordPress DBの管理アカウント: Hoge_passwd123
    • MySQL 5.7以後,パスワードのセキュリティレベルが上がった(MEDIUM)らしい. (1) アルファベットの大文字小文字は必ず混在,(2) 数字と特殊記号を必ず1文字以上, (3) 文字数は8文字以上

なお,MySQL のセットアップは済んでいるものとする. 記述時点(2017-02-13)の使用バージョン(パッケージ名)は mysql-5.7.17-macos10.12-x86_64 である. 所在は /usr/local/mysql-5.7.17-macos10.12-x86_64

セットアップ手順 (新規インストール)

後で書く.他に書いてるヒトたくさんいるから,オレが書かなくても良いか..

セットアップ手順 (更新・再インストール)

こっちは今後も何度もお世話になるので記録. 今回(Feb2017)もハマッたのはこれだし.

事前準備

必ずバックアップをとる事. WordPress ディレクトリ全体もそうだが,重要なのは MySQL 上の WordPress DB それ自体.

$ mysql -u root -p wordpressdb > WordPressDB_backup.sql
(-p はパスワードを画面表示させないため.wordpressdb が MySQL 上のDB名.)

リストアは下記:
$ mysql -u wp_admin -p wordpressdb < WordPressDB_backup.sql

実行手順(作業内容メモ)

  1. MySQL にて,WordPress用DBと管理アカウントを作成
    • 作成だけでなく,権限設定と flush privileges も忘れるな
  2. WordPress 用DBの復元(MySQL にて)
    • 上記で作った管理用アカウントにてリストアを実行すべし

実行手順(コマンドの羅列)

$ sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
. SUCCESS! 
$ mysql -u root -p
Enter password: (MySQLはセットアップ済み,root パスワードも初期のランダムパスワードから変更済みとする)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.7.17-log

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
(中略)

mysql> CREATE DATABASE  wordpressdb;
mysql> CREATE USER 'wp_admin'@'localhost' IDENTIFIED BY 'Hoge_passwd123';
mysql> GRANT ALL ON WordPressDB.*  TO 'wp_admin'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
$ sudo /usr/local/mysql/support-files/mysql.server stop
Shutting down MySQL
. SUCCESS! 

Hoge (reserved)

WordPressのトラブル

WordPressの運用に際して出くわしたトラブル・失敗を記録. 失敗を記録する事は,将来の失敗軽減に寄与する(はず).

OSバージョンアップ時(Sierra)のトラブル (2017-02-14)

Sierra だと,旧バージョンの WordPress が動作せず(ver.記録せず.少なくとも,現在使用中のv4.7.2 より前). そもそも,MySQL が起動しなかった(El Capitan にて mysql-5.7.10-osx10.9-x86_64 を使用). 具体的な原因は不明.単に自分のPC環境に問題があっただけかもしれない. OS X の10.9版を使い続けたのだから,動かなくなっても文句を言える筋合いじゃない.

特に深く考えずに,「だったらMySQLのバージョン上げれば良いやん」と思ってインストールしたのが失敗. WordPress DB のバックアップをとってなかった...
OSバージョンアップ前にとっておけ!なんで忘れたんや,アホが!

... MySQL の管理経験が皆無だったので,そこから悩む(実は簡単に解決できたのに).

  • ${former version mysql}/data/WordPressDB を新バージョンMySQL側に単純コピーしたが閲覧できず(そりゃそうだ)
  • InnoDB のデータファイルからの復元方法を検索する.難しくて理解できない
  • Mac の TimeMachine から引っ張り出す計画を考える. でも,この時点でOSバージョンアップから既に数日が経過. 様々なファイルが追加されていたので,システム全体を戻す事までしたくない.
  • TimeMachine で日付指定したバージョンアップ前のバックアップファイルからブート(起動時optionキー押してれば起動HDD選択可能)して, OSバージョンアップ前のシステム状態での対象DBのバックアップ,それを外部に退避させた後に内蔵HDDからブートして戻す... という手順も考えたが, そもそもそんな事は出来ない...? ネット検索して調べたが,方法は見つからなかった.

ここまで試して諦めかけたが,ふと気づく. 「前のバージョンのMySQLの data 部分,そのまま残ってるやんか」
後は簡単.

  • /etc/my.cnf にて datadir だけを前バージョンのパスで指定して新バージョンの mysql を起動(成功)
  • MySQL前バージョンの WordPressDB のバックアップをとる
  • 一旦 MySQL を停止,my.cnf の datadir 指定を外して(デフォルト通りにして)起動
  • 新規に WordPressDB を作成,管理ユーザ作成などの通常移行手順を踏む
  • 先程のWordPressDBバックアップファイルを使って戻す
  • ブラウザからWordPressを起動.正常にアクセスできた!

他の業務やりながらとはいえ,たったこれだけの手順を思いつくのに5日かかった... 自分は何と愚かだったのだろう.

変更履歴

更新日 内容
2017-02-14 項目を整理.失敗の記憶がフレッシュなうちにまとめねば...
2017-02-13 記述開始.OSバージョンアップ時のWordPress トラブルでこんなにも苦労すると思わなかった. 再発防止のため,かつ未来の自分のために覚え書きを記すことにした.