Drupalとは
Drupalとはコンテンツ管理システム(CMS)である。ブログシステムのリファレンスにもなっている。モジュールによるシステム構成がしっかりしており、コードも整理されている。したがって、コードの管理も容易と思われ、セキュリティ上も有利と思う。
デフォルトで、3ペインや2ペインのスキンが数種類入っており、すぐに利用可能だ。またサードパーティのデザインもある。これらもdrupalと同じサイトからダウンロード可能だ。
Drupalの入手
Drupalは、
Drupal.orgないしは
Drupal.jpから入手できる。
サーバ環境の準備
DrupalはLAMPないしはLAPP環境で動作する。動作にはApache2, PHP4以上の他に、MySQLないしはPostgreSQLデータベースが必要だ。
ただし、PostgreSQLサポートがちゃんとされているのはコアモジュールのみであり、サードパーティモジュールのなかにはPostgreSQLサポートが省略されているものがある。とはいえ、コアではデータベースの違いを吸収するようになっているので、そのようなモジュールであってもMySQLのデータベース定義を参考に、PostgreSQL用のデータベース定義を作成するだけで、利用可能である。
SQL文のわかる方は、ぜひPostgreSQLでの利用にチャレンジし、移植すると日本の多くのユーザに喜ばれるだろう。
インストールの前に
多くのサイトでは、すぐにパッケージを展開し、利用しているだろう。しかし、ここではコード管理システムによるコード管理を行いつつ、利用することにする。
実は、このようなサーバパッケージは、セキュリティ対応のためバージョンアップに追随する必要がある。実際に動作しているサイトで、直接アップデートするのは、作業を失敗した場合にサイトの停止を招くし、作業中はアクセスを受けられないこともある。
また、スキンやモジュールについて、独自の拡張やサードパーティのモジュールを導入した場合、それらをマージしつつ、利用したいだろう。設定についても、アップデートの際にパッケージを上書きして消してしまうこともある。(drupalでは、設定ファイルはsample用と実際のファイル名を違えているので、このような事故は無い)
そこで、プログラム開発でつかうコード管理システムを活用して、このような課題を解決する。
またバージョンアップや拡張を行う際には、テスト用のサイトを作成し、動作確認してから本番環境に摘要するといったことも容易にできるのだ。
subversionの準備
近代的なBSD/Linuxであれば、subversionはパッケージで導入できるだろう。
リポジトリの初期化
%svn init /path/to/repos
リポジトリの構造を作成する
%svn mkdir file:///path/to/repos/trunk
%svn mkdir file:///path/to/repos/branches
%svn mkdir file:///path/to/repos/tags
初期インポート
drupalのパッケージを一時的なディレクトリに展開する。
% tar zxf drupla-4.7.0.tar.gz
% cd drupal-4.7.0
subversionのリポジトリにdrupalのコードを導入する。
%svn import file:///path/to/repos/trunk
続いて、リポジトリにあるパッケージを作業ディレクトリに
チェックアウトする。
%cd ~/work
%svn co file://path/to/repos/trunk drupal
つぎに、branchをつくって、maillineブランチとtrunkにわける。
%svn cp file:///path/to/repos/trunk file:///path/to/repos/branches/mainline
今後、パッケージのアップデートがあった場合は、すべてこのmainlineブランチにいれていく。
trunkは、実際に本番環境で使う環境である。
モジュールの導入
そこでtrunkには、追加モジュールなどをいれてコミットする。
追加モジュールはダウンロードして ~/srcディレクトリにあるとすると、
% cd ~/work/drupal/modules
% tar zxf ~/src/some_module-4.7.x-.tar.gz
% cd ../
% svn add some_module
% svn ci -m 'add some module'
というようになる。複数ある場合は上記を繰り返す。
バージョンアップの対応方法
もし、バージョンアップがあったら、
- maillineブランチにバージョンアップをコミットする。タグも打っておく
%cd work/drupal;
% svn switch file:///path/to/repos/branches/mainline
% cp -pr somewhere/drupal ./
% svn ci -m 'mainline version up'
% svn cp file:///hogefuga/branches/mainline file://hogefuga/tags/ML-4.7.5
- trunkの作業コピーにマージする。
% svn switch file://hogefuga/trunk
% svn merge -r 1:HEAD file:///path/to/repos/branches/mainline
- 実験用ディレクトリにいれて、動作を確認する
% cp -pr * ~/test_html
- OKだったらそれで運用し、コード管理でコミットする
% svn ci -m 'upgrade'
インストール
コード管理システムで管理されているので、ファイルのインストールは、コード管理システムからチェックアウトすることに相当する。
% cd ~/
% svn co file:///path/to/repos/trunk public_html
さて、drupalの基本設定については、パッケージ管理システムの作業ディレクトリで実施する。
% cd ~/work/drupal
% cd sites/default/
% vi settings.php
ひとつのパッケージで複数サイトを運用する
drupalはひとつのパッケージで複数サイトを運用するための仕組みを備えている。たとえばxoopsではサイトごとにパッケージを展開、管理する必要があるが、セキュリティバージョンアップの際には、すべてのコードを更新しなければならなくなり、ミスをよぶ原因ともなる。
drupalでは、設定ファイルに工夫がある。設定ファイルがsitesというディレクトリにあるのには理由があるのだ。
もし、利用したいサーバ名 path名がhttp://www.drupal.org/misite/test/ だった場合、
- sites/www.drupal.org.mysite.test
- sites/drupal.org.mysite.test
- sites/org.mysite.test
- sites/www.drupal.org.mysite
- sites/drupal.org.mysite
- sites/org.mysite
- sites/www.drupal.org
- sites/drupal.org
- sites/org
- sites/default
の順番で設定ファイルのサーチが行われる。
たとえば、
- http://www.example.com/userA/
- http://www.example.com/userB/
- http://www.example.com/
という3つのページを作る場合は
- sites/www.example.com.userA/settings.php
- sites/www.example.com.userB/settings.php
- sites/default/settings.php
という設定ファイルを準備し、それぞれにデータベース設定とアップロードするファイルの場所を違えておけば、独立して運用してもらえる。
新しいコメントの投稿