はじめに
仕事で使っていたCMSを見直す機会があったので、静的ページ書き出しのできるCMSと安全に運用できる方法を再検証した。
僕のように末端のカス、もしくは初心者の人にもわかるようにまとめてみたい。
そもそも静的ページとは?その必要は?
ざっくり説明すると、基本的にはHTMLとCSSだけで作成されたHTMLファイルで、ジャバスクリプトもここにはいることがあるようだけれども、AJAXなどの技術で外部と通信を行いページを更新する場合は動的なページの分類にはいるだろう
静的なページはそのURLにアクセスしてローカルにファイルをダウンロードしたらそれ以上は変わることがないのでセキュリティ的に安心。しかし、動的コンテンツだと、サーバーに接続して通信を行わないといけないのでどうしてもセキュリティ対策する必要が出てくる
じゃあ普通にHTMLでつくればいいのでは?
ページ数が極端に少ないようなウェブページではそれでも問題ないけれども、それにも専門的な知識(HTMLやCSSなど)が必要になるし、中規模、大規模なウェブページを手動で更新するのは難しい
たとえば、HTMLとCSSだけで書いてあるページでとある記述を直さなければならなくなったとき、1ページだけなら手動でもいいだろう。けれども、10ページ、100ページあるような場合、手動で直すには時間もかかるし、ミスも増えてしまう。SSIやPHPを使えばパーツ毎の管理はできるが、セキュリティの面からは外れてしまう。
CMSを使えば管理しやすいのか?
Yesとも言えるし、Noとも言える。まず、手動で作成するよりかは管理しやすいが、CMSを使いこなすにはやはり専門的な知識が必要になる。静的ページを作るCMSを使えば安全にサイト運用が行えるかといえば、必ずしもそうではない。
静的ウェブページを書き出す有名なCMSとして、「Movable Type」がある。これは元から静的ページ書き出しに対応しており、ブログの記事も静的ページとして書き出してくれる。が、一つ注意しないといけないところがある。
CMS本体をどこに置いて管理するのか、と言うことだ。
下のような図でCMSを設置した場合、どうだろうか? ページを作成管理するCMSがお客さんに見せるサーバーにある。CMSにログインするにはパスワードなどが必要となるが、誰からも見えるところにCMSを置くのは安全とは言えない。
次の図では、どうだろうか? CMS本体は別の場所で管理して、書き出された静的ページのみをお客さんに見せるレンタルサーバにFTPやGitなどを用いてファイルを同期する。そうすればCMSは外部からは見えないので比較的安全にサイト運営ができる
昔に比べてウェブサーバを立ち上げるのも簡単になったとはいえ、ローカルにサーバを立ててというのは知識がいることだ。かといって一つのサーバ内で完結させてしまうのは問題がありすぎる。
また、僕も仕事やこのサイトで失敗してるのだけれども、ローカルサーバー内でCMSを入れて管理していると、リンクがローカルサーバー(192.168.xxx.x)てきなやつになったりしているのに気付かなくてアップ後に気付いたりするので、少し管理が煩わしくなる。とは言え、ローカルリンクを相対パスか実際のURLに書き換えればいい話なんだけれどもね
どのCMSを選べばいいのか?
静的ページで運営したいのであれば、やはり「Movable Type」がいいんではないかなと思う。「WordPress」もプラグインで静的ファイルを書き出せるようになるが、意図しないディレクトリに書き出されたり調整が面倒くさい。また、デザインが微妙に異なる複数のページを持ちたい時はWordPressよりMovable Typeの方が編集がしやすいだろう。
ただ、Movable Type は商用利用が有償ライセンスとなり、それなりの費用が必要となる(個人のブログやサイトだと無償ライセンスがある)
ほかにもCMSはたくさんあるが、長期的にサポートも受けたいのなら、ある程度メジャーなものを選びつつ、個人でも企業でもローカルサーバを立てて試験的な運用を行った上で選んでいくしかないと思う。