筑波大学技術報告
29: 7-10, 2009

ホームページを CMS でリニューアル
木村 博美
筑波大学研究基盤総合センター技術室（応用加速器部門）〒305-8577 茨城県つくば市天王台 1-1-1
必要に応じて独自のコンテンツタイプを定義することができる。今回は CCK モジュールを用いていくつかのコンテンツタイプを定義した。
コンテンツを作成・管理するには Drupal にログインする必要がある。アカウントはデータベースに登録する以外にも LDAP や OpenID 等を使用することができるが、今回はデータベースを使用した。

概要
研究基盤総合センター応用加速器部門の前身である加速器センターのホームページは 1994 年に開設され、以来HTMLファイルを配置する古典的方法で管理されてきた。ホームページは公式ページと個人ページから成っているが、公式ページ 1 を 2008 年にContent Management System (CMS) に移行した。

３．ホームページの機能と仕組み

キーワード：ホームページ、CMS、Drupal

3.1 画面デザイン

１．はじめに他の CMS 同様、Drupal も「テーマ」の設定で画面のデザインを変更することができる。以前のホームページと同様に画面左にメニューを配置し、画面全体の幅を固定しないデザインとした。CMS のデザ
イナーと使用者は西洋人が多いせいか色調が淡いものが多いが、日本人には却って見にくいので少し文字を強調するようにしてある。
作業は主に CSS (Cascading Style Sheet) ファイルの編集だが、Firebug という Firefox のアドオンを使用することで容易にできた。

近年、公式ホームページの重要度が増し、情報の迅速な公開が要求されるようになってきた。しかし、パソコンで HTML ファイルの編集作業をし、Webサーバーにアップロードするという方法では、限界が見えてきた。そこで、サーバー上で直接コンテンツを作成・管理する CMS に移行することにした。
2004 年から、当時の主なオープンソースのCMSを調査・テストし、2005 年にDrupal 2（ドゥルーパル）を採用することにした。手始めに、2005 年 11 月に
AMSシンポジウム用のホームページ 3 をDrupalで新規作成した。更に、2006 年 2 月にはタンデム加速器研究会のホームページ 4 もDrupalで作成した。それらの経験を生かし、加速器部門ホームページの移行作業を 2006 年から始めた。データを移行する作業の大半はブラウザ画面上でのコピー・ペーストで行い、残りはDrupalの拡張モジュールを使ってファイルから取り込んだ。

3.2 検索ボックス
図 1 の A で示す部分が検索ボックスである。以前
は検索エンジンに Numazu を使用し必要に応じて検索データを更新する必要があったが、Drupal では、主なコンテンツはデータベースに入っているので手２．DRUPAL について
Drupal はオープンソースで開発されている CMSの一つであり、使用言語は PHP である。データベー
スは MySQL と PostgreSQL から選択できるが、今回は MySQL を使用した。
プログラムはモジュール構造になっており、システムは 30 程のモジュールで構成されている。ユーザの開発したモジュールを追加して、機能を拡張できる よ う に な っ て お り 、 2008 年 12 月 の 時 点 でdrupal.org には約 2000 個のモジュールが登録されている。今回はその中から 20 個のモジュールを追加した。
Drupal は Web ページ以外にも、ブログやオンラインマニュアル等を作成することができる。それらの内容（コンテンツ）はデータであり、どの様なデータ構造（例えば、題目と本文で一つのデータとする）かは「コンテンツタイプ」で分類される。管理者は
1

http://www.tac.tsukuba.ac.jp/uttac/
http://drupal.org/
3
http://web2.tac.tsukuba.ac.jp/ams8/
4
http://web2.tac.tsukuba.ac.jp/tandem/2

図 1. ホームページの表紙

7

図 3. タンデトロン実験予定の新規作成

図 2. 公開情報の新規作成
題目下の「公開情報」タブで情報の種類を選択する。

間がいらない。また、コンテンツへのアクセス制限が働くので、学外から検索した時には学内専用コンテンツは検索されない。ただし、PDF ファイル等のデータベースに入っていないものは検索の対象外なので、追加モジュールで対応する必要がある（準備中）。

3.3 学内専用メニュー
図 1 の B のメニューは学内からアクセスした時だけ表示されるようになっている。仕組みは簡単で、Drupal ではメニューのブロック毎に表示設定が可能
で、更に PHP コードも追加できるようになっている
ので、閲覧者の IP アドレスを判定する PHP コードを埋め込んだだけである。

図 4. タンデトロン予定表
後に重要でなくなった時には、編集で「お知らせ」に変更することができる。
内容の文章は通常はタグの制限された「FilterdHTML」で記述するが、タグの制限の無い「FullHTML」や更に「PHP code」を選べる（図 2 の下）。
ただし、ユーザによっては安全な Filtered HTML しか選べない。また「WYSIWYG エディタを使用」をクリックすると、HTML タグを直接記述することなく編集ができる。
なお、表紙メニューの「お知らせ・更新情報」で過去の分も全て閲覧することができる。

3.4 更新日時
図１の C で示す部分にコンテンツの更新日時が表示されるようになっている。以前は、更新日時はその都度手で書き換えていたが、コンテンツがデータベースに入っているので、表紙に SQL を発行するPHP コードを埋め込むことで、自動的に更新されるようにした。

3.5 新着情報と重要なお知らせ

3.6 タンデトロン実験予定

コンテンツの作成メニューから公開情報の作成を選ぶと、図 2 のような編集画面で作成することができる。題目の下には情報の種類を選択できるようになっており、「更新情報」、「お知らせ」と「重要なお知らせ」から選択できる。
「更新情報」と「お知らせ」は表紙の F の部分に8 件まで表示されるが、「重要なお知らせ」は表紙の E に強調して表示される。「重要なお知らせ」がタンデトロン加速器の実験予定表を管理するためのコンテンツであり、一つの実験が一つのコンテンツに対応している。図 3 が一つの予定を入力している画面である。開始と終了の日時、題目を入力すれば、図 4 のような予定表に組み込まれる。

83.7 学内専用コンテンツ
コンテンツへのアクセス制限を掛けるために、以前はディレクトリー毎の .htaccess ファイルを使用していたが、Drupal ではコンテンツはデータベースに入っているのでその方法は使用できない。そこでcontemplate モジュールでコンテンツの雛形にアクセス制限用の PHP コードを埋め込み、「学内専用」コンテンツタイプを定義した。更に CSS で背景に色を付け、一目で判別できるようにした。

3.8 内部メモ
作業記録やメモをコンテンツとして残せるようにしてある。ただし、ログインしないと閲覧できないように制限している。

3.9 フォーム
以前から加速器の利用申請をオンラインで受け付けるようにしており、フォーム入力を CGI で処理していたが、それを webform モジュールで置き換えた。
フォームの構成に制限はあるが、作成・修正が画面上で見ながら簡単にできる。更に図 4 のように過去のデータも保存されるので、大変便利である。

図 5. フォームの受付履歴
ログインせずに送信されたものは、ユーザがAnonymous と表示される。
「表示」をクリックすると、内容が表示される。

3.10 更新履歴
どのコンテンツを何時誰が作成・編集したかを閲覧できるようにするために recent_changes モジュールを使用している（図 6）。また、各コンテンツ自身も履歴（リビジョン）を残すように設定しているので（図 7）、全ての作業は追跡可能である。ただし、どちらもログインしないと閲覧できない。

3.11 複製
時々、少しだけ内容の異なるコンテンツを作成することがあるので、clone モジュールを使用している。
図 7 の「リビジョン」タブの右に見える「複製」をクリックすると、そのコンテンツをコピーして新しいコンテンツが作られる。
図 6. 更新履歴

3.12 印刷用ページ
表紙以外の全ての画面で、print モジュールを用いて「印刷用ページ」のリンクが表示されるようになっており、印刷した時にメニュー等の余分な部分が含まれないようにしている。

3.13 表紙の写真
表紙の写真は度々変更されるが、通常の Drupal のアップロードではファイル名が重複しないように名前が変更されてしまい、差し替えは面倒なので、webfm モジュール配下で固定のファイル名を指定して簡単に差し替えができるようにしている。

3.14 ユーザ管理

図 7. リビジョン
このコンテンツは user1 が作成し、user2 が 3度更新したことが分かる。

他の CMS 同様 Drupal でもユーザをグループで分類し、権限を制限することができる。初期状態ではログインしない「匿名ユーザ」とログイン後の「登録ユーザ」という２つのグループが存在する。

9

今回はコンテンツの編集を担当するグループを「管理者」とし、部門内部の関係者を「内部ユーザ」、それ以外の実験関係者を「外部ユーザ」とした。現時点では管理者以外にはアカウントを発行していないが、掲示板等を運用するための準備である。
コンテンツは履歴が残るようになっているが、コンテンツ自身を削除すると、履歴も削除されてしまう。そこで、nodeaccess モジュールで管理者もコンテンツの削除ができないように設定している。不要になったコンテンツは、「掲載」オプションをオフにすることで、隠すことができる。
それ以外にも不用意な操作でホームページがおかしくならないように、アクセス権を細かく制限している（図 8）。ただし、例外として Drupal をインストールしたユーザ（筆者）には全てのアクセスが許可されるので、特に慎重な操作が要求される。
なお、ホームページへのアクセスは通常 http だが、
ロ グ イ ン 時 と そ れ 以 降 は https に な る よ う に
secure_pages モジュールを使用している。

図 8. グループのアクセス権設定
これは一部だが、管理者にも許可していない権限がある。

４．運用
５．まとめ

サーバーは CPU が Pentium4 2.8 GHz、メモリー2GB、OS は FreeBSD、データベースの MySQL を同一ホスト上で動かしている。サーバーは 2 台あり、１台を本番用、もう 1 台を予備用にしている。ソフ
トウェアの更新や新機能のテストは、先ず予備用サーバーで確認してから、本番用サーバーに適用するようにしている。
ハードディスクは健康状態を SMART で監視し、通信量やメモリー使用量等は Hobbit で集中監視している。また、万一の改竄検出のために Tripwire を使用している。

CMS に移行してからは、ホームページの更新が速やかに行えるようになった。新しい情報を入力していけば、後は CMS が整理してくれるので、利便性も向上した。
Drupal バージョン 4 を使用していた時は、本体や追加モジュールに不具合があって苦労したが、バージョン 5 になってからは安定している。

参考文献[1] John K. VanDyk, Matt Westgate, Pro Drupal Development,
2007.

A case of reconstructing website by using CMS
Hiromi Kimura
Tandem Accelerator Complex, Technical Service Office of Research Facility Center for Science and Technology,
University of Tsukuba,
1-1-1 Tennodai, Tsukuba, Ibaraki, 305-8577 JapanThe website of Tandem Accelerator Center, the predecessor of Tandem Accelerator Complex, Technical Service
Office of Research Facility Center for Science and Technology, has been established in 1994. It had been maintained bylegacy technique that edits then uploads HTML files. The website consists of official pages and personal pages. In 2008,
the official pages were reconstructed by using CMS (Content Management System).
Keywords: Home page; CMS; Drupal10