$30 off During Our Annual Pro Sale. View Details »

EC2上のWordPressをShifterに移行してみた!

 EC2上のWordPressをShifterに移行してみた!

EC2上で動いている個人ブログ「Tasty Hamburgers」を、WordPressベースで静的ページを生成するサービスの「Shifter」に移行してみます。

More Decks by Eiji KOMINAMI / 小南英司

Other Decks in Technology

Transcript

  1. 5 EC2ベースのアーキテクチャ AWS Cloud ap-northeast-1 VPC Availability Zone Public subnet

    Internet gateway Maintenance Windows Flow logs Topic Alarm Documents Patch Manager State Manager t3.micro 悩みと問題点 貧弱なバックエンド • t3.micro • シングルAZ • WebサーバもDBも1台に全部乗せ ⾯倒なメンテナンス • WordPressの更新 • ミドルウェアの更新 (Apache, PHP, MariaDB..) • セキュリティパッチの適⽤ ちょっと頑張ってるトコロ Ansibleによる更新の⾃動化 SSMを⽤いた運⽤の簡素化
  2. 10 マルチサイトをシングルサイト化して移⾏ 現状 親サイト ├── ⼦サイト① └── ⼦サイト② (hamburger) エクスポート

    親サイトに移動 hamburger ├── ⼦サイト① └── ⼦サイト② (hamburger) シングルサイト hamberger エクスポート All-in-One WP Migration Multisite Extension $199 All-in-One WP Migration FREE
  3. 11 マルチサイトをシングルサイト化して移⾏ # ⼦サイトのコンテンツを移動 cp -rp wp-content/site/4/ wp-content/* # ⼦サイトに関連するテーブルをダンプ

    mysql -u USER -p -N information_schema -e "SELECT table_name FROM tables WHERE table_schema='wordpress' AND table_name LIKE 'wp_4%'" > tables.txt mysqldump -u USER wordpress `cat tables.txt` > dump # ダンプファイル上の⽂字列を置換 vi dump :%s;wp-content/uploads/s/4/;wp-content/uploads/;g # ダンプファイルを改めてデータベースに読み込み mysql -u root wordpress < dump # 親サイトに関連するテーブルを削除し、⼦サイトのデータに置き換え mysql -u USER -p DROP TABLE wp_commentmeta, wp_comments, wp_ewwwio_images, wp_ewwwio_queue, wp_links , wp_options , wp_postmeta , wp_posts , wp_term_relationships , wp_term_taxonomy , wp_termmeta , wp_terms , wp_user_login_log; RENAME TABLE wp_4_commentmeta to wp_commentmeta, wp_4_comments to wp_comments, wp_4_ewwwio_images to wp_ewwwio_images, wp_4_ewwwio_queue to wp_ewwwio_queue, wp_4_links to wp_links , wp_4_options to wp_options , wp_4_postmeta to wp_postmeta , wp_4_posts to wp_posts , wp_4_term_relationships to wp_term_relationships , wp_4_term_taxonomy to wp_term_taxonomy , wp_4_termmeta to wp_termmeta , wp_4_terms to wp_terms , wp_4_user_login_log to wp_user_login_log; UPDATE wp_options set option_value = 'http://blog.surbiton.jp' where option_name = 'siteurl'; UPDATE wp_options set option_value = 'http://blog.surbiton.jp' where option_name = 'home'; UPDATE wp_options set option_name = 'wp_user_roles' where option_name = 'wp_4_user_rolesʼ; # マルチサイトを解除(以下の設定を削除) vi wp-config.php define('MULTI', true); define('WP_ALLOW_MULTI', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_', 'blog.surbiton.jp'); define('PATH_CURRENT_', '/'); define('_ID_CURRENT_', 1); define('BLOG_ID_CURRENT_', 1);