ODDBRAIN.JP | The splash Ideas

新規サイトを構築しました。

とある繋がりからイラストの掲載とブログの投稿をするサイトを作ることになり、かねてから勉強用のサーバでちまちまと作っていました。今日それを本番公開するために、(同じサーバ内でですが)構築しましたので手順をここにまとめたいと思います。
実績はgerolの個人サイトになりますが、技術的な手順くらいはこっちでまとめようかと思います。ちなみに、一般的なLAMP + WPです。

#ドメインを取得する
お名前.comでこれまでドメインを取っていたので、今回もここからとりました。正直、前年末に情報漏えいをやらかしていて、その対応の塩っぽさ(というか、お粗末さ)に辟易しているのですが、日本の巨大レジストラなので仕方ないかなと思っています。ほかのレジストラとかリセラー使っても大体GMO(系)なんで。
お名前.com
最初この情報(どこのレジストラ使っているか)隠そうかと思いましたが、ドメインのWhois見ればわかるので書くことにしました。

#DNSを設定する
新規サイトと言ってもサーバは同じ勉強用サーバを使うのでDNSは同じIPを指定します。wwwなしで公開する予定なのでとりあえずこれだけ設定します。今のサーバは存在しないサブドメインにアクセスすると404に飛びます。www有を転送させた方がいいのでよくないなぁとは思いますが、confの設定はあとでもいいので構築を完了させるのを先にします。
DNS

example.com A 3600 xxx.xxx.xxx.xxx

#configファイルを作成する
ドメインが変わるのでhttpd.confに書かず、新しくファイルを作成します。!nologとかua_denyとかはどっかみてあぁ…このロボット来てほしくないなぁと思ったものを設定していたかと思います。
/etc/httpd/conf.d/example.com.conf

<VirtualHost *:80>
  ServerAdmin  admin@example.com
  ServerName   example.com
  DocumentRoot "/var/www/html/s2/example"
  CustomLog    logs/example.com-access_log env=!nolog
  ErrorLog     logs/example.com-error_log
  <Directory "/var/www/html/s2/example">
      AllowOverride All
    <RequireAll>
      Require all granted
    <RequireNone>
      Require env ua_deny
    </RequireNone>
    </RequireAll>
  </Directory>
</VirtualHost>

#テストで作成していたファイルを本番ディレクトリにコピーする
上の例でいうところの/s2/exampleですね。丸っとコピペします。ただし、スクラッチ用に作成した静的ファイルはこの時点で削除します。あと、.htaccessも一旦削除した方がいいかもですね。

#本番WP用のDBとユーザを作成する。
これはタイトル通りです。わたしはPHPMyAdminが嫌いなので違うやつ使ってます。あれ重いしゴチャゴチャしてるんで必要最小限だけあればいい時に使うには不向きなんですよね。

#WPのインストール
DNSがそろそろ効いてくる頃なので、example.comにアクセスしてWPのインストールを実行します。実行したらinstall.phpは削除した方がいいんでしたっけ。たしか

#パーマリンク等設定を行なう
パーマリンク、ユーザ、プラグインの設定をこの段階で行います。

パーマリンクの変更を保存して新しい.htaccessを作成します。トップページ以外が404になる問題が発生しましたが、過去に行ったトラブルシューティングを見直して解決できました。今回はAllowOverride Allの記述忘れです。大元がNoneなので、記述しないと.htaccessが使えないのです。こういうときメモっていると安心できますね。Goodjob過去の自分。

ユーザは管理者のほかに、投稿だけできるユーザを作成してそちらを使ってもらうことにします。今回のサイトは作って終わりではなくgerolが管理して、依頼者は投稿だけできるようにします。勉強だからお金はもらわないけどポートフォリオに書くくらいの内容にはなったから良しとしています。Let’s 転職↓

プラグインも、テストサイトの段階で入れておけば有効化するだけでとりあえず動きます。設定が必要なやつは適宜コピペする感じで。All In One WP Security的なやつとかCrazy Born的なやつは毎回入れてるんでそれの設定とかですかね。

#GoogleAdsenseの登録
せっかくサイト作るならこれやった方がいいかなあという勝手な要望だけでなく、依頼者の「パッと見まとめサイト的な感じで」っていう、ちゃんとした要望もあって追加しました。どこにでも入れるとゴチャゴチャするので、ブログ的なページにのみ入れることにしました。gerolは性的な広告とかギャンブルの広告が出るのは嫌いなので出ないように設定しています。

#GoogleAnalyticsの設定
Google依存はよくないと思いつつ便利なのでつい使ってしまいます。プラグインのGoogle Analytics Dashboard for WPを使って簡単にできるのもまた楽でいいですね。
GoogleAnalytics側でフィルタは少し工夫する必要があるようです。以下の3つを除外します。
・トラッキングIDをホスト名に含むもの(SPAM対策)
・ホスト名がnot setのもの(SPAM対策)
・自分からのアクセス(IPアドレスの除外)
WPのプラグインでAnalyticsのものがあるのでそれを追加しようと思ったらどうにもパーミッションがうまくいかないなぁと思っていろいろ弄っていたのに、リロードしたらなんかうまくいって若干イラッとしているgerolです。

#faviconが出ない件について
Chromeだけでないみたいですが、キャッシュ削除すれば出るようなのであとで検証します。というか、作成し直しになったので見えなくても問題にならないというね。ロゴ考えるの難しいんだよなぁ…
追記:でました、でました。

#Twitterのタイムラインが出ない件について
更新しているChromeでは出ないけど、Firefoxでは表示されたので、いったん閉じてから再確認します。
追記:でました、でました。

#キャッシュの有効化とかgzip圧縮とか
Preview Post:サイトのレスポンス高速化 Part.2
ここでやったように.htaccessに追記しました。jQuery関連のasyncとかやってみたんですけど、不具合が出たのでやめました。

#表示に必要な最低限のページを追加する
動的なCMSなのでどうしてもDBごとコピーしない限り、ここは手動でやらないといけないんですよね。DBコピーはちょっと怖かったので手動で追加しました。というか、どこか問題あったらこの時点でわかるので手動のほうがいいかもしれません。

#全体の動作確認
追加で入れたいなぁと思う機能とかもありますが、いったんうまく動いているか確認して問題なさそうなのでこれで公開完了とします。

#最後に
GoogleにIndexしてもらいましょう。
Google Search Console

#所感
サイト作りって結構しんどい所があったりもするのですが、事前にできているとこんなにスムーズに進むんだなぁと結構感心しています。仕事でも最初からこうやってできていればヘイト溜めずにやれたんだろうなぁと思ったりもしますけど、そうそううまくいかないから仕事なんでしょうね。割り切ってできないから体悪くするんだよ。
SEOの対策なんかはまだ全く手を付けてないのでこれから色々とやっていこうかと思います。彼がどれだけコンテンツを増やしてくれるかは未知数ですが、どれだけ人が集まるのか気になるところです。

以上、gerolでした。