Drupal は、PHPで開発されているOSSのコンテンツ管理システム(CMS)です。今回、Drupalを触る機会がありました。私は普段はWordPressを触っているので、別のCMSを扱うのは新鮮でした。
1.Drupalバージョン
今回触ったバージョンは現時点の最新である「7.23」と「6.28」ですが、ここでは「7.23」で記載しています。
システム構成は、apache、php、MySQL です。これがDrupalでの標準構成です。DrupalはPostgreSQLなども対応していますが、情報が極端に少ない感じがしますので、apache、php、MySQL構成で良いと思います。
2.ミドルウェア構成
前述のとおり、apache、php、MySQLの構成となります。apache、php について触れておきます。
apache では、mod_rewrite モジュールが必要になります。
httpd.conf で、以下の設定を有効にします。
LoadModule rewrite_module modules/mod_rewrite.so
mod_rewrite が有効になっているかどうかは「httpd -M」での出力結果(動的モジュール確認)で確認できます。
# /usr/local/apache2/bin/httpd -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (static) (中略) rewrite_module (shared) php5_module (shared) #
上記載のように、「rewrite_module」が表示されれば、mod_rewrite は有効になっています。
php(sourceからインストール)では、configure オプションで、PDOを指定します。以下がMySQLとPostgreSQLでの指定例です。指定するのは利用するDBのものだけで結構です。
./configure --with-pdo-mysql --with-pdo-pgsql
では、次からDrupalのインストールをしていきます。
3.Drupal のアプリを配置
Drupal をダウンロード・解凍して、apache のディレクトリに移動します。
# cd /usr/local/src # wget http://ftp.drupal.org/files/projects/drupal-7.23.tar.gz # tar zxvf drupal-7.23.tar.gz # mv drupal-7.23 /usr/local/apache2/drupal # cd /usr/local/apache2/drupal # mv scripts /root (scripts はWeb公開する必要はないので、別の場所に移動) # cd /usr/local/apache2 # chown -R root:daemon drupal
あとは、apache側(httpd.conf)で、/usr/local/apache2/drupal を公開する設定を行います。
次は、MySQLでデータベースを作成します。
4.MySQLでDBの準備
まず、データベースを作成します。
# mysql -u root -p mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.02 sec) mysql> create database drupal default character set utf8 collate utf8_general_ci; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | drupal | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.00 sec) mysql>
次に、アカウントを作成し、権限を与えます。
mysql> create user 'drupal'@'localhost' identified by 'hogehoge'; Query OK, 0 rows affected (0.05 sec) mysql> mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES,CREATE TEMPORARY TABLES ON drupal.* to 'drupal'@'localhost' identified by 'hogehoge'; Query OK, 0 rows affected (0.01 sec) mysql>
作成結果は、以下のSQL文で確認できます。
mysql> select user,host from mysql.user;
以上で、DB側の準備は一旦完了です。
5.Drupal で settings.php の準備
以下の操作で、Drupal 設定ファイルである「settings.php」を用意します。
# cd /usr/local/apache2/drupal/sites/default # ls default.settings.php # cp -ar default.settings.php settings.php # ll 合計 48 -rw-r--r--. 1 root daemon 23202 8月 8 11:04 2013 default.settings.php -rw-r--r--. 1 root daemon 23202 8月 8 11:04 2013 settings.php # chmod a+w settings.php # ll 合計 48 -rw-r--r--. 1 root daemon 23202 8月 8 11:04 2013 default.settings.php -rw-rw-rw-. 1 root daemon 23202 8月 8 11:04 2013 settings.php #
なお、settings.php で設定したパーミッションは、インストール後に元に戻します。
次に同じ場所に「files」ディレクトリを作成します。
# pwd /usr/local/apache2/drupal/sites/default # mkdir -p files # chown -R root:daemon files # chmod 777 files # ll 合計 52 -rw-r--r--. 1 root daemon 23202 8月 8 11:04 2013 default.settings.php drwxrwxrwx. 2 root daemon 4096 11月 7 15:57 2013 files -rw-rw-rw-. 1 root daemon 23202 8月 8 11:04 2013 settings.php #
次からが、ブラウザでのインストールプログラムの実行になります。
6.Drupalインストール
いよいよDrupalのインストールになります。
drupal を配置し、apacheで公開したURLに、ブラウザでアクセスすると、以下のような画面が表示されます。
そのまま「Save and continue」ボタンを押下します。
次の「Choose language」では、Englishのみが選択できます。(日本語化でまとめられたDrupalでは日本語が出てくるかも。)
次の画面である「Verify requirements」は問題がなければバイパスされます。問題があれば、その内容が表示されますので、修正します。
次の画面「Database configuration」では、PHPから使えるDatabaseタイプが表示されるので、Drupalで利用するDBを選定し、データベース設定を行います。
「ADVANSED OPTIONS」をクリックすると、データベースのホスト名やポート番号、表のprefixを指定できます。
「Save and continue」ボタンをクリックし、問題がなければ、Drupal のインストールが始まります。しばらく待ちます。
インストール処理が終わると、「Configure site」画面が表示されます。
「All necessary changes to sites/default and sites/default/settings.php have been made, so you should remove write permissions to them now in order to avoid security risks.」と表示されるので、以下のようにパーミッションを設定します。
# cd /usr/local/apache2/drupal/sites # chmod 755 default/ # chmod 644 default/settings.php
その後、「Configure site」画面をリロードすると、表示されていた注意メッセージは消えます。
画面上で「SITE MAINTENANCE ACCOUNT」などの情報を埋めて、「Save and continue」ボタンをクリックします。
問題がなければ、以下のようにインストール完了画面が表示されます。
私はDBのところで少しハマりました。
「Visit your new site.」リンクをクリックすると、何もエントリがないDrupalのWelcome画面が表示されます。
Drupalのインストールの流れはこのような感じです。
ちなみに、PostgreSQLをバックエンドで利用するDrupal 6.28 のセットアップも行ったのですが、ちょっと大変でした。MySQLとの組み合わせのほうがナレッジがあって良いと思います。