LoginSignup
5
2

More than 3 years have passed since last update.

静的HTMLからWordPressへの移行の話

Last updated at Posted at 2019-11-06

概要

静的HTMLで管理していたHPを、WordPressへ移行しました。
その際に行った作業について記します。

移行にあっての要求

1. 静的HTMLファイルの直接の書き換えを楽にしたい

  • 表を逐一エディタで編集してFTPソフトで送信するなど手間がかかる
  • メニューやヘッダーなど共通部分の更新を一括に変更したい
  • 更新項目をトップに乗せるのを自動化

2. モバイル対応をしたい

  • モバイルファーストが叫ばれている中、固定レイアウトだけのHPは既に過去の遺物

3. 管理コストは軽くしたい

  • いろいろ独自で作ってもいいけど、属人化しそうなので、なるべく誰でも管理できるように
  • アプリケーションに関する情報が豊富で学習コストがかからない

要件

1. WordPressへの移行

  • ブラウザ上での編集
  • テーブル管理を楽に
  • モバイル対応(メジャーなテーマを利用すれば普通対応している)
  • セキュリティ周りの設定

2. ドメインの移行

  • 旧サイトの情報も参照ができるようにする
  • サブドメイン周りの設定をちゃんとする

環境情報の確認

OS: CentOS 7.4
Webサーバー: Apache 2.4.6
DNSサーバー: Bind

確認方法

作業

1. VirtualHostの設定

既存のHPのドキュメントルートと、WordPressの置かれているディレクトリが異なります。
従って、同じIP内で、ドキュメントルートを複数に分ける方法としてVirtualHostをつかいます

Apacheの設定ファイルは、基本の設定ファイルhttp.confと、http.conf内で読み込まれる個別モジュールに分かれます。

http.conf
/etc/httpd/conf/httpd.conf 
****.conf
/etc/httpd/conf.d/***.conf

モジュールはhttpd.confにおいて、拡張子.confであるものがインクルードされます。

httpd.conf
# Load config files in the "/etc/httpd/conf.d" directory, if any.
Include /etc/httpd/conf.d/*.conf

新たに.confファイルを作成し、各種設定をしました。

new.httpd.setting.conf
<VirtualHost *:80>
    ServerName hogehuga.com #サーバー名
    ServerAlias www.hogehuga.com # サーバーエイリアス
    DocumentRoot /var/www/wordpress # WordPressのディレクトリ
    <Directory /var/www/wordpress>
      AllowOverride All # .htaccessの制御
      Options FollowSymLinks # ディレクトリ制御
      Order allow,deny # ディレクトリに対するアクセス制御
      Allow from all
    </Directory>
    <ifModule mod_rewrite.c> # サブドメインのリダイレクト
        RewriteEngine On
        RewriteCond %{HTTP_HOST} (\w)+.hogehuga.com$
        RewriteRule ^/(.*)$ http://hogehuga.com/$1 [R=301,L]
    </ifModule>
</VirtualHost>

<VirtualHost *:80>
    ServerName old.hogehuga.com # 旧HP用のドメイン
    DocumentRoot /var/www/html/
    <Directory /var/www/html/>
     AllowOverride All
     Options FollowSymLinks
     Order allow,deny
     Allow from all
    </Directory>
</VirtualHost>

ディレクトリの制御は.htaccessによる制御ができるように。また、old以外のサブドメインを正規表現で条件付けしてリダイレクトするよう設定しました。

2. WordPressの設定

次にWordPressは多く使われる反面、セキュリティの脆弱性が突かれやすいのでちゃんと管理する必要があります。

サイトヘルスの問題の修正

WordPress5.2から追加された機能で、WordPress内のセキュリティの設定や各言語などのバージョンをチェックし点数(パーセント)を算出してくれます。

今回はそれに従い修正を加えました。

.htaccessの制御

httpd.confで設定していない、WordPress内個別のファイルやIPの制限を行いました。

メールアドレスのみのログイン

ログインにおいてブルートフォース攻撃の脅威を下げるために追加しました。
wp-content > themes > lightning > functions.phpに追記します。

テーマ内のファイルに追記するので、テーマのアップデートすると変更がなくなる点に注意です。

CentOSのファイアウォール設定:firewalld

CentOS7ではファイアウォールの設定がiptablesからfirewalldに変更となりました。
ファイヤーウォールの設定確認を確認してポートの状態を良好に保ちます。

WorDPressバックアップの設定

WordPressのプラグインBackWPupを使いました。

テーブル管理

HP内のテーブル管理にはTablePressプラグインを利用しました。

まとめ

静的HTMLで管理していたHPを、WordPressへ移行しました。その際に行った作業について記しました。

Apacheサーバー側の設定はなかなか個人では触る機会がないので勉強になりました。

WordPressはHP利用として汎用性・拡張性が高い半面、それなりに管理コストが必要なので導入については気を付けましょう。

雑記

後から知ったことですが、静的HTMLを提供するだけなら、静的サイトジェネレータを使うことを考えるといいかもしれません。
WordPressはセキュリティ周りの管理コストが意外とかかります。

実際、友人がサーバーを乗っ取られ、仮想通貨のマイニングが行われてしまった。という話を聞いています。
Markdown記法で手軽に書けるHugoがおすすめらしいです。

:point_right_tone2: Hugo で静的なサイト・ブログを構築しよう

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2