Drupal 環境構築(Obscure)

コンテンツ作成システム Drupal の環境構築、インストール手順を記録します。

Drupal 環境インストール手順

Drupal 6.x をインストールするのに必要な、PHP5 と MySQL、それに phpMyAdmin をインストールする手順の説明。

インストール先のホスト名を grasp01 とする。

読み方

% で始まる行は、grasp01 の端末上のコマンドラインである。

apache2 のインストール

パッケージインストールする。

 % sudo apt-get install apache2

ブラウザで localhost にアクセスし、「It works!」と表示されるのを確認する。

PHP5 のインストール

まずパッケージをダウンロードする。

 % sudo apt-get install php5-cli php5-dev php-pear php5-mysql php5-mcrypt php5-dev php5-mhash php5-gd php5-xsl php5-xmlrpc libapache2-mod-php5

確認のために、コマンドラインでインストールされたバージョンを表示する。
 % php -v
 PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
 PHP 5.3.2-1ubuntu4.11 with Suhosin-Patch (cli) (built: Dec 13 2011  18:45:32) 
 Copyright (c) 1997-2009 The PHP Group
 Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

php5.3.2ではこのようなメッセージが出る。
Deprecated 云々は単なる警告で実害はないが、抑制するには /etc/php5/cli/conf.d/mcrypt.ini を編集して、一行目のコメントの開始を # から ; にすればよい。

さらに、PHP の動作確認をする。
apache2 の公開サイトは /var/www なので、/var/www/testphp.php を以下の内容で作成する。

 <?php phpinfo(); ?>

ブラウザで http://grasp01/testphp.php を開いて、PHP のシステム情報画面が表示されれば、インストールは成功。
(もしここでブラウザが testphp.php をダウンロードしようとする場合、libapache2-mod-php5 のインストールをやり直す)

MySQL のインストール

(参考) http://d.hatena.ne.jp/hiratake55/20090119/1232363523
まずパッケージをインストールする。

 % sudo apt-get install mysql-client mysql-server 

ここでMySQL の rootユーザに対してパスワードの設定を求められる。
このroot はシステム(Linux)のrootとは無関係なので、任意のパスワードを指定すれば良い。

/etc/mysql/my.cnf を編集して、キャラクタセットを utf8 にする。

 [mysqld]
 default-character-set = utf8
 
 [mysql]
 default-character-set = utf8

mysql を再起動する。
 % sudo /etc/init.d/mysql restart

phpMyAdmin のインストール

 % sudo apt-get install phpmyadmin

途中いくつか入力項目がある。
自動再設定をする web サーバ
apache2
phpmyadmin のデータベースを dbconfig-common で設定しますか?
はい
データベースの管理権限を持つユーザのパスワード
先に設定した MySQL の root のパスワード
phpmyadmin 用の MySQL アプリケーションパスワード
空のまま

インストールが完了したら、ブラウザで localhost/phpmyadmin を開き、root(MySQLの) でログインする。
(よく config.inc.php の $cfg['blowfish_secret']にランダムな文字列を設定する指示があるが、Ubuntuのパッケージインストールでは /var/lib/phpmyadmin/blowfish_secret.inc.php が自動で作られているので必要ない)

drupal データベースの作成

まず、phpMyAdminの、「新規データベースを作成する」機能で drupal データベースを作成する。
次に、phpMyAdmin の左ペインのタイトル下に5つ並んだアイコンのうち、左から3番目のウインドウの中に赤字で「SQL」と書かれたアイコンをクリックしてクエリウインドウを呼び出す。
このクエリウインドウに以下のコマンドを入力してMySQL ユーザ drupal を作成する。

 GRANT ALL PRIVILEGES ON *.* TO drupal@localhost IDENTIFIED BY 'パスワード' WITH GRANT OPTION;

コマンド中「パスワード」とある部分は、実際には drupal ユーザに設定するパスワードとなる。
この MySQL ユーザ drupal も、root と同様 OS のユーザとは無関係である。

一度phpMyAdmin からログアウトし、ユーザ drupal と今設定したパスワードでログインできれば成功である。


Drupal 6.x インストールに続く

Drupal 6.x インストール

読み方

% で始まる行は、grasp01 の端末上のコマンドラインである。

Drupal のインストール

1. tarball を取得して、展開する。

 % wget http://downloads.sourceforge.net/drupal-jp/drupal-6.22-japanese_022.tgz
 % tar xf drupal-6.22-japanese_022.tgz
 % mv drupal-6.22 drupal
 % cd drupal

(drupal のバージョンが上がっている場合、wget が失敗する。Drupal 6.x 日本語ディストリビューションの最新版は、 http://drupal.jp/drupal6/distribution から入手できるはずである)

2. 設定ファイルを作成する。

 % cd sites/default
 % cp default.settings.php settings.php
 % chmod 666 settings.php

3. ディレクトリにパーミッションを設定する。
 % find files/ -type d|xargs chmod 777

このコマンドで、カレントディレクトリの files 以下のディレクトリに対して、パーミッション777(オーナー、グループ、その他すべてのユーザーが読み書き実行できる)を設定する。

4. ディレクトリを公開ディレクトリに移動する

 % cd ../../..
 % sudo mv drupal /var/www

5. インストーラをブラウザで開く
ブラウザで http://grasp01/drupal を開くと、インストーラが起動する。

入力が必要なのは以下の3つの画面となる。
Choose Profile
日本語プロフィールを選択して「Save and Continue」ボタンを押して進む
データベースの設定
データベース名 drupal、ユーザ名 drupal, パスワードは先ほど設定したものとして「保存して次へ」ボタンを押して進む
サイトの環境設定
サイト名、管理者のメールアドレス、管理者のアカウント設定(ユーザ、メールアドレス、パスワード)、サーバの設定を適切にして「保存して次へ」ボタンを押して進む

インストーラが終了したら、再び端末で setting.php のパーミッションを設定する。

 % sudo chmod 444 /var/www/drupal/sites/default/setting.php

6. 完了
再びブラウザから http://grasp01/drupal を開くと、まっさらのトップページが開くので、ログインする。


Drupal 設定手順 に続く

Drupal 設定手順

Drupal の設定

コアモジュールの有効化

管理セクション › サイトの構築 › モジュール を開き、コア -任意- に含まれる
Book, Search, Upload を有効にして「設定の保存」ボタンを押す。

ブロックの設定

モジュールによっては、入力フォームやリンクをブロック内で配置できる。
管理セクション › サイトの構築 › ブロックを開き、目的のモジュールの左にある十字を左または右のサイドバー、コンテンツ、ヘッダ、フッタにドラッグ&ドロップすればよい。

たとえばここで、ブックナビゲーションを左サイドバーの一番上にドラッグ&ドロップすると、ブックアウトラインで設定した階層構造が左サイドバーに表示される。

ここでは以下のような設定を行うこととする。

左サイドバー

  1. Secondary links
  2. コンテンツ
  3. Administration
  4. ナビゲーション
  5. 言語スイッチャー
  6. 検索フォーム

右サイドバー

ブロックは設定しない

コンテンツ

  1. Inline diff

ヘッダ

  1. Primary links

フッタ

  1. Powered by Drupal
  2. ユーザログイン

ユーザの設定

ユーザ登録については、訪問者の申請を管理者が承認する形式を取る。

管理セクション › ユーザの管理
ユーザの設定 を開き、
新規アカウントの登録方法
訪問者が新規アカウントを作成できる(管理者の承認が必要)
訪問者がアカウントを作成する際にメールの確認が必要
チェック

として、設定の保存ボタンを押す。

言語の設定

管理セクション › サイトの環境設定 › 言語 を開き、English の編集を開き、
パスプレフィックスを「en」として保存する。
同じ言語の設定を開き、言語ネゴシエーションを「パスプレフィックス(代替言語あり)」に設定して、設定を保存する。

ロールの追加

すでに管理者アカウントを設定しているが、単なる認証ユーザと分けて、一部のユーザにサイトのコンテンツの構成を行える役割を与えたい。
Drupal ではこうした場合ロールを追加する。
管理セクション › ユーザの管理 › ロール を開き、テキストボックスに新しいロール名「管理者」と入れて「ロールの追加」ボタンを押す。
すると、ロールの一覧に「管理者」の行が増える。そこで「権限の編集」リンクをクリックし、モジュールごとに定義されている機能を、一通りチェックして「権限の保存」リンクを押す。

ユーザにこの新しい管理者ロールを適用するには、管理セクション › ユーザの管理 › ユーザ を開き、ユーザごとにある「編集」を開く。アカウント情報のロールの候補として、追加されている「管理者」チェックボックスをチェックして保存すれば良い。

権限の設定

管理セクション › ユーザの管理 › 権限 を開くと、モジュールごとの複数の機能について、権限の一覧が表示され、そのひとつひとつについてロール別にチェックできるようになっている。
チェックのないロールのユーザは、その機能を使うことができない。
これが権限を設定するということである。

本サイトはWikiサイト、すなわちサイトのユーザがコンテンツの内容を追加・変更できるウェブサイトとして作成しているが、一方で匿名ユーザまでが自由にコンテンツを変更できる仕様では、内容の改変等のリスクがある。
そこで、認証済みユーザについては大幅に権限を強化しつつ、匿名ユーザの権限は絞ることにする。

(以下詳細は、別ページ 権限の設定 に記しますが、これは開発者限定情報とします。ご了承ください。)


Drupal モジュール設定手順 に続く

Drupal モジュール設定手順

Drupal に追加する各種モジュールのインストールと設定の手順。

読み方

拡張モジュールの利用法

基本の3ステップ

通常、モジュールのインストールはごく簡単で、
  1. tarball をダウンロード (wget)
  2. tarball を展開 (tar)
  3. ディレクトリを /var/www/drupal/modules に移動 (sudo mv)

これだけでいい。これが基本の3ステップとなる。

インストールしたら、まずモジュールを有効にする。
新しくインストールしたモジュールはこの時点では無効になっているので、チェックボックスをクリックし、ページ末の「設定の保存」ボタンを押すと有効になるが、権限やワークフローなどの設定が必要なことも多い。

正しく設定を行っても、Javascript や CSS のキャッシュが残っていてモジュールがうまく働かないときもある。
管理セクション › サイトの環境設定 › パフォーマンス の、「キャッシュデータのクリア」ボタンでサーバ側のキャッシュをクリアできるので、ブラウザのキャッシュと一緒にクリアするとよいだろう。

Update Locale モジュール

モジュールの翻訳をネットワークから自動的に取得するモジュール。
http://www.drupal-module.info/mod/update_locale

 % wget http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/drupal-jp/modules/update_locale.tar.gz
 % tar xzf update_locale.tar.gz 
 % mv update_locale /var/www/drupal/modules/

基本の3ステップでインストールしたら、管理セクション › サイトの構築 › モジュール を開き、その他のモジュールの中の「Update Locale」を有効にして、「設定の保存」ボタンを押す。

Diff モジュール

コンテンツの差分を視覚化するモジュール。
http://drupal.org/project/diff

 % wget http://ftp.drupal.org/files/projects/diff-6.x-2.3.tar.gz
 % tar xzf diff-6.x-2.3.tar.gz 
 % sudo mv diff /var/www/drupal/modules/

基本3ステップでインストールしたら、その他のモジュール内の「Diff」を有効にして保存する。
すると、管理セクション › サイトの構築 › ブロック の無効のブロックに「inline diff」が追加されるので、フッタに追加する。

PEAR Wiki filter + MediaWiki モジュール

MediaWiki (Wikipedia などで使われているWikiエンジン)に準じた記法をサポートする。
PEAR Wiki filter: http://drupal.org/project/pearwiki_filter
Text_Wiki: http://pear.php.net/package/Text_Wiki/
Text_Wiki_Mediawiki: http://pear.php.net/package/Text_Wiki_Mediawiki

インストールするには、三つの tarball を組み合わせ、パーミッションを正しく設定する必要がある。

tarball の入手
 % wget http://ftp.drupal.org/files/projects/pearwiki_filter-6.x-1.0-beta1.tar.gz
 % wget http://download.pear.php.net/package/Text_Wiki-1.2.1.tgz
 % wget http://download.pear.php.net/package/Text_Wiki_Mediawiki-0.2.0.tgz

pearwiki_filter と Text_Wiki を展開し、Text_Wiki の内容を pearwiki_filter に移動する。
 % tar xzf pearwiki_filter-6.x-1.0-beta1.tar.gz
 % tar xzf Text_Wiki-1.2.1.tgz
 % mv Text_Wiki-1.2.1/Text pearwiki_filter

Text_Wiki_Mediawiki を展開し、内容を pearwiki_filter にコピーする。
 % tar xzf Text_Wiki_Mediawiki-0.2.0.tgz
 % cp -rp Text_Wiki_Mediawiki-0.2.0/* pearwiki_filter

pearwiki_filter/Text 以下の *.php のパーミッションを、すべて 644 とする。
 % find pearwiki_filter/Text -name '*.php' | xargs chmod 644

pearwiki_filter を drupal のモジュールディレクトリにコピーする。
 % sudo mv pearwiki_filter /var/www/drupal/modules

ブラウザで 管理セクション › サイトの構築 › モジュール を開き、その他に現れる PEAR Wiki filter を有効にする。
ホーム › 管理セクション › サイトの環境設定 › 入力書式 を開き、入力書式の追加 タブから、PEAR Wiki filter のみを有効にした新しい入力書式「PEAR Wiki filter」を作成する。(デフォルトの入力書式にするので、ロールの設定はそのままでよい)
入力書式 タブを開き直し、「PEAR Wiki filter」をデフォルトに設定する。
 

Wikitools モジュール

PEAR Wiki filter だけでは、内部リンクは機能しない。
内部リンクを実際のコンテンツと結びつけるために、Wikitools モジュールが必要となる。
http://drupal.org/project/wikitools

これも基本の3ステップでインストールできる。

 % wget http://ftp.drupal.org/files/projects/wikitools-6.x-1.3.tar.gz
 % tar xzf wikitools-6.x-1.3.tar.gz
 % sudo mv wikitools /var/www/drupal/modules/

モジュールを開きWikitools を有効にすると、メニューの 管理セクション › サイトの環境設定 に Wikitools が現れる。
Wiki node types 以下の、Book page, ストーリー、ページをすべて有効にする。

Backup and Migrate モジュール

ボタンクリック一つですべてのコンテンツをバックアップし、またバックアップからコンテンツを復元できるモジュールである。
http://drupal.org/project/backup_migrate

基本3ステップでインストールできる。

 % wget http://ftp.drupal.org/files/projects/backup_migrate-6.x-2.4.tar.gz
 % tar xzf backup_migrate-6.x-2.4.tar.gz 
 % mv backup_migrate /var/www/drupal/modules/

基本3ステップでインストールしたら、その他のモジュール内の「Backup and Migrate」を有効にして保存する。

とりあえずバックアップをとるには、管理セクション › コンテンツの管理 › Backup and Migrate を開き、「Backup now」ボタンを押すと、「サイト名-日付T現在時.mysql」のダウンロード画面が出るので、このファイルを保存する。
復元するときは、同じく Backup and Migrate を開いて、Restore リンクを開く。

Restoring will delete some or all of your data and cannot be undone. Always test your backups on a non-production server!
リストアするとデータが消滅するおそれがあり、元には戻せない。テスト用のサーバで必ずバックアップファイルを確認すること、という警告メッセージである。

ここで Upload a Backup File としてローカルホストにある以前のバックアップファイルを指定し、「Restore now」ボタンを押すと直ちにリストアが行われる。

Search and Replace Scanner モジュール

正規表現を使って全コンテンツに対して一括置換をかけられる強力なモジュール。
http://drupal.org/project/scanner
基本3ステップでインストール

 % wget http://ftp.drupal.org/files/projects/scanner-6.x-1.0.tar.gz
 % tar xzf scanner-6.x-1.0.tar.gz 
 % sudo mv scanner /var/www/drupal/modules

普段から有効にしておく必要はないかもしれない。

権限

管理セクション › ユーザの管理 › 権限 を開き、scannerモジュールについて
administer scanner settings: 匿名ユーザと認証済みユーザをチェック
perform search and replace: 認証済みユーザのみチェック
と設定する。

設定

管理セクション › サイトの環境設定 › Search and Replace Scanner を開き、
Scanner Option: そのまま
Fields that can be searched: book, page, story のそれぞれの title と body をチェック

i18n モジュール

コンテンツの翻訳に対応したモジュール。
http://drupal.org/project/i18n

インストール前に、管理セクション › サイトの環境設定 › 言語を開き、デフォルト言語を英語に設定する。デフォルト言語が日本語だと、i18nモジュールはうまく動かない。
また、コアモジュールの Content translation と Locale を有効化しておく。

 % wget http://ftp.drupal.org/files/projects/i18n-6.x-1.10.tar.gz
 % tar xzf i18n-6.x-1.10.tar.gz
 % sudo mv i18n /var/www/drupal/modules

基本3ステップでi18n モジュールをインストールすると、管理セクション › サイトの構築 › モジュール に Multilanguage という項目が現れるので、以下のものをチェックする。

(参照)Drupalで多言語サイトの構築メモ

Translation Overview モジュール

翻訳状況の一覧を表示するモジュール。
http://drupal.org/project/translation_overview

 % wget http://ftp.drupal.org/files/projects/translation_overview-6.x-2.4.tar.gz
 % tar xvf translation_overview-6.x-2.4.tar.gz 
 % mv translation_overview /var/www/drupal/modules/

基本3ステップのあと、管理セクション › サイトの構築 › モジュールを開いて、Multilanguage の Translation_overview を有効にする。

権限

i18n モジュール、locale モジュール、translation モジュール、translation_overview モジュールの各機能について、認証済みユーザの列をすべてチェックする。

設定

管理セクション › コンテンツの管理 › コンテンツタイプ › Book page を開き、ワークフローの設定で多言語サポートを有効(翻訳対応)にする。(ついでにデフォルトオプションの新しいリビジョンの作成と、添付も有効にする)
また、管理セクション › サイトの構築 › ブロック を開き、左サイドバーに言語スイッチャーを追加する。

翻訳機能のテスト

ここで 管理セクション › コンテンツの管理 › Translation overview を開いても、コンテンツが空であるため何も表示されない。
試しに コンテンツの作成 › Book pageの作成 を開いて、「テスト」というブックページを作る。タイトルも内容も「テスト」とし、言語は日本語にする。
再びTranslation overview を開くと、ブックページ「テスト」は、ja が○で en が■となっている。これは、日本語で作成した元ページ「テスト」に対して、英語の翻訳は存在しないという意味である。
さて、「テスト」ブックページのメニュ-には「翻訳」という項目がある。これを開いて、さらにEnglishの行の「翻訳の追加」を開くと、タイトルと本文が「テスト」で言語が英語になった新しいBook page の作成画面に移る。
そこで、タイトルと本文を「Test」に変更して保存する。
新しく作られた「Test」ブックページは、Add new comment と並んで「日本語」のリンクがある。これをクリックすると、先に作った「テスト」ブックページが表示される。
左サイドバーに追加した言語スイッチャーの「English/日本語」リンクを使っても、同様に「テスト」と「Test」を行き来できる。
ここで改めてTranslation overview を開くと、ブックページ「テスト」は、en が□に変わっている。翻訳がなされたということである。

これから作成するページも、同様に翻訳を行い日本語ページと英語ページを関連付けていくことができる。

Taxonomy Access Control モジュール

タクソノミー(タグ設定)機能を使って、ロール単位でアクセス制御を行うモジュール。
ここでは、認証済みユーザのみが見ることができる「開発者限定情報」ブック以下のページに適用されている。
http://drupal.org/project/taxonomy_access

あとでコンテンツのアクセス権を再構築するので、インストール前に一度 Backup and Migrate でバックアップをとったら、例によって基本3ステップでインストールする。

 % wget http://ftp.drupal.org/files/projects/taxonomy_access-6.x-1.3.tar.gz
 % tar xzf taxonomy_access-6.x-1.3.tar.gz 
 % sudo mv taxonomy_access /var/www/drupal/modules/

モジュールを有効化すると、「コンテンツのアクセス権を再構築する必要があります。 このページにアクセスしてください。」というメッセージが出るので、アクセス権の再構築を行う。

インストールしたら、ロールとタクソノミーの設定を行わなければならない。

匿名ユーザからは見えないページを作るために

まず、アクセスという名前のボキャブラリを定義する。
管理セクション › コンテンツの管理 › タクソノミー を開き、「ボキャブラリの追加」リンクをクリックする。
ここで、
Translation mode:
None を選択
言語
空白のまま
ボキャブラリの名称
アクセス
説明
taxonomy_access のためのアクセス権を示すタグです。この項目が開発者限定、となっているページは、認証されていないユーザーが見ることはできません。
ヘルプテキスト
(空のまま)
Book page
チェックする
Page
チェックする
Story
チェックする
タグ
チェックしない
複数選択
チェックしない
必須
チェックしない
ウェイト
0
すると、タクソノミーの一覧に「アクセス」が追加されるので、「タームの追加」を開く。
「アクセスにタームを追加」の画面が開いたら、以下の設定で保存する。
タームの名称
開発者限定
説明
認証ユーザしか見ることができない情報です。
高度なオプション
(そのまま何もしない)

これで、編集画面でアクセスに対して「開発者限定」を選択できるようになるが、これだけではまだ何の効果も起きない。

匿名ユーザがアクセス:開発者限定となっているページを開けないようにするために、管理セクション › ユーザの管理 › Taxonomy access permissions を開く。
ここでアクセス:開発者限定の行に対し、表示・更新・削除のすべてをD(Deny、アクセスに応じない)に設定する。

こうすることで、ページの編集でアクセス:開発者限定と設定されたページは、匿名ユーザに公開されなくなります。

(注意:ブックアウトラインの上位ページが「アクセス:開発者限定」に設定されている場合、匿名ユーザのブックアウトラインには、限定のページより下の階層のページは表示されません。ただし、下の階層のページのアクセスが開発者限定になっていない場合、ノード番号をURIで直接指定するとページが見えてしまいます。下の階層のページにも必ずひとつひとつ、開発者限定アクセスを設定してください

ImageCache と ImageAPI モジュール

ImageCache はアップロードされた画像の大きさを制限したり、サムネイルを作成するのに利用されるモジュールで、動作には ImageAPI モジュールを必要とする。
http://drupal.org/project/imagecache
http://drupal.org/project/imageapi

 % wget http://ftp.drupal.org/files/projects/imagecache-6.x-2.0-beta12.tar.gz
 % tar xf imagecache-6.x-2.0-beta12.tar.gz
 % sudo mv imagecache /var/www/drupal/modules/

 % wget http://ftp.drupal.org/files/projects/imageapi-6.x-1.10.tar.gz
 % tar xf imageapi-6.x-1.10.tar.gz
 % sudo mv imageapi /var/www/drupal/modules/
 

どちらも基本3ステップでインストールできる。
管理セクション › サイトの構築 › モジュール を開き、ImageCache グループのうち、

を有効にする。

ImageAPI は、画像処理のためのツールキットとして GD2 か ImageMagick を利用できるが、ここではGD2を使うことにする。
管理セクション › サイトの環境設定 › ImageAPI を開き、
Select a default image processing toolkit: に対して ImageAPI GD2 を選択する。

ImageCache については、ここで設定することはない。

iTweak_upload モジュール

ページ編集・作成時の、ファイルアップロードボタンにドラッグ&ドロップ機能を追加するモジュール。
http://drupal.org/project/itweak_upload

インストールの前に、phpの拡張モジュール uploadprogress が必要である。これは pecl でインストールする。

 % sudo pecl install uploadprogress

また、デフォルトではアップロードできるファイルのサイズが1~2MBに制限されているが、これを20MBに拡張するために、/var/www/public/GraspPlugin/i/.htaccess に以下の行を追加する。
 php_value max_execution_time 0
 php_value memory_limit 96M
 php_value post_max_size 20M
 php_value upload_max_filesize 20M

インストールはいつもの基本3ステップ。
 % wget http://ftp.drupal.org/files/projects/itweak_upload-6.x-2.5.tar.gz
 % tar xf itweak_upload-6.x-2.5.tar.gz
 % sudo mv itweak_upload /var/www/drupal/modules

管理セクション › サイトの構築 › モジュール を開き、Site Tweaks グループのうち、iTweak upload を有効にする。

ファイルアップロードの設定

管理セクション › サイトの環境設定 › ファイルアップロード の設定を行う。

全般の設定

アップロード画像の最大解像度
800x600
デフォルトでファイル一覧表示を有効
いいえ
許可されるファイル拡張子
jpg jpeg gif png bmp txt doc xls pdf ppt pps odt ods odp zip gz taz
アップロード単位の最大ファイルサイズ
20MB
ユーザ単位の合計ファイルサイズ
100MB

Attachments display

Default preset for image thumbnail
AttachmentThumbnail
Default thumbnail link open mode
Open image
Show file name on the opened thumbnail link
チェック
Default Image gallery type
iTweak Upload
Progress Indicator
Bar with progress meter

認証済みユーザ用の設定

許可されるファイルの拡張子
jpg jpeg gif png bmp txt doc xls pdf ppt pps odt ods odp zip gz taz
アップロード単位の最大ファイルサイズ
20MB
ユーザ単位の合計ファイルサイズ
100MB

管理者用の設定

認証済みユーザ用の設定と同じ

inline モジュール

ページにアップロードした画像を手軽に埋め込むモジュール。
http://drupal.org/project/inline

基本3ステップでインストール。

 % wget http://ftp.drupal.org/files/projects/inline-6.x-1.0.tar.gz
 % tar xf inline-6.x-1.0.tar.gz
 % sudo mv inline /var/www/drupal/modules/

管理セクション › サイトの構築 › モジュール を開き、Input filters グループの Inline を有効にする。

続いて管理セクション › サイトの環境設定 › Inline を開いて、以下のように設定を行う。

ImageOutput

Link to images
Display image only

Image dimensions and scaling

Teaser preset
No Imagecache processing
Full preset
No Imagecache processing

設定を保存したら、今度は PEAR Wiki Filter との連動の設定をする。
ホーム › 管理セクション › サイトの環境設定 › 入力書式 › PEAR Wiki Filter(MediaWiki Format) を開き、フィルタグループにある Inline file filter をチェックして設定を保存する。
また、この画面からさらに「設定」を開き、Image グループの Base path for images の内容を、/GraspPlugin/i/sites/default/files/ に変更して、設定を保存する。

IMCE モジュール

ファイルをアップロードした sites/default/files ディレクトリのブラウザ。
http://drupal.org/project/imce

基本3ステップでインストール。

 % wget http://ftp.drupal.org/files/projects/imce-6.x-2.3.tar.gz
 % tar xf imce-6.x-2.3.tar.gz
 % sudo mv imce /var/www/public/GrasoPlugin/i/modules

管理セクション › サイトの構築 › モジュール を開き、その他グループのうち、IMCE を有効にする。

続いて管理セクション › サイトの環境設定 › IMCE を開く。
サンプルのプロファイルとして、「User-1」と「Sample profile」があらかじめ設定されているが、新たに管理者用のAdminを作ることにする。

まず新しいプロファイルを作成する。
「Add new profile」を開いたら、すでにあるプロファイルをインポートする。「Import settings from other profiles:」の候補として、User-1 をクリックすると、User-1の設定が読み込まれる。
Profile name に Admin と入力して、以下の設定で保存する。

Display file browser tab in user profile pages
チェック
アップロード単位の最大ファイルサイズ(MB)
20
Directory quota
0
Total user quota
0
許可されるファイルの拡張子
jpg jpeg gif png bmp txt doc xls pdf ppt pps odt ods odp zip gz taz
Maximum image resolution
800x600
Maximum number of files per operation
6

Directories
管理者は、 site/default/files 以下すべてのディレクトリですべての操作ができるようにするため、
カレントディレクトリを示す「.」に対してBrowse, アップロード、Thumbnails、削除, Resize のすべてをチェックする。
[inline:imce_admin_dir.png]

Thumbnails
iTweak_upload とサムネイルを共用する。
名前
AttachmentThumbnail
Dimensions
60x60
Prefix
./imagecache/AttachmentThumbnail/
Suffix
(空のまま)

完了したら設定の保存をクリックする。

次に、このAdminプロファイルを管理者に割り当てる。
Role-profile assignments の管理者のAssigned Profile から、Adminを選んで設定を保存するだけで良い。

これで、管理者として登録されたユーザは アカウント情報 > File browser を開くことで IMCE のファイルブラウザを利用できる。
[inline:IMCE.png]

同様にして、新しいプロファイル Users を作成して認証済みユーザに割り当てる。
Users の設定は Admin の場合とほぼ同じだが、認証済みユーザにはファイルのブラウズとアップロードしか許可しない。
そのため、カレントディレクトリの設定は Browse とアップロードをチェックして、Thumbnails、削除, Resizeのチェックははずすことになる。
[inline:imce_users_dir.png]

Drupal のカスタマイズ

pearwiki_filter のカスタマイズ

画像のサイズ指定を本文横幅に対するパーセンテージで行うため、modules/pearwiki_filter/pear_override/parse_mediawiki/Image.php に以下のコードを追加する。

                else {
                  $options['attr']['width'] = substr($part, 0, $pos);
                }
              }
              ////// ↓↓↓↓ ここから ↓↓↓↓
              elseif ($pos = strpos($part, '%')) {
                if (strpos($part, 'x')) {
                  list($width, $height) = explode('x', substr($part, 0, $pos));
                  $options['attr']['width'] = $width + '%';
                  $options['attr']['height'] = $height + '%';
                }
                ////// ↑↑↑↑ ここまで ↑↑↑↑
                else {
                  $options['attr']['width'] = $part;
                  $options['attr']['height'] = $part;
                }
              }
              else {
                $options['attr']['title'] = $part;
              }

CSS の修正

pre記法をコマンドライン風の黒字に白文字にするため、modules/user/user.css の末尾に以下の行を追加する。

 pre {
 color:white ;
 background-color: black ;
 margin-right: 50px ;
 padding: 0.5em;
 border-style: inset;
 border-width: 2px;
 border-radius: 10px;        /* CSS3草案 */  
 -webkit-border-radius: 10px;    /* Safari,Google Chrome用 */  
 -moz-border-radius: 10px;   /* Firefox用 */  
 }

 div.content img {
 border: 1px solid #CCC;  
 background: #FFF;  
 padding: 2px;   
 }

以上でカスタマイズ完了とする。

Drupal カスタマイズメモ

2012/2/1 英語モードでWikiリンクが使えない?

実は、ブラウザの言語設定を英語優先にすると、使えるようになる(ただしそうすると今度は日本語のWikiリンクが使えなくなる)。
どうやらWikiリンクが国際化に対応できていない模様で、ソースコードを追ってq=jaなりq=enなりを追加してやる必要がある。

2012/1/18 多言語化したせいか日本語Wikiリンクが使えなくなった

Choreonoid 1.0 ヘルプをクリックすると、英語のnot found ページが出てしまう。
リンクは
http://www.hlab.sys.es.osaka-u.ac.jp/grasp/?q=wiki/Choreonoid_1.0_%E3%83%98%E3%83%AB%E3%83%97
となっているのだが、このuriの中に q=jaが含まれていないのが問題で、
http://www.hlab.sys.es.osaka-u.ac.jp/grasp/?q=ja/wiki/Choreonoid_1.0_%E3%83%98%E3%83%AB%E3%83%97
とすればきちんとページが表示される。
http://www.hlab.sys.es.osaka-u.ac.jp/grasp/?q=wiki/ja/Choreonoid_1.0_%E3%83%98%E3%83%AB%E3%83%97 と、uri中のwikiとjaをひっくり返すとダメ)

対応策

とにかく言語の設定があやしい。管理セクション>サイトの環境設定>言語>設定 で、言語ネゴシエーションを「パスプレフィックスのみ」から、「パスプレフィックス(代替言語あり)」に切り替えることで、q=ja の指定のない Wikitools のリンクが、正しく表示されるようになった。

Drupal のアップグレード

Drupal のセキュリティアップデートが公開されたら、速やかに適用しなくてはならない。

危険を伴う作業であるため、注意して実行すること。

最新バージョンの準備

まず、何はなくとも最新バージョンの Drupal をダウンロードし、ローカルのディレクトリ上に展開する。
当サイトに適合するのは、Drupal 6.x 日本語ディストリビューションである。http://drupal.jp/drupal6/distribution から、最新バージョン(2012/2/14 現在、6.24)をダウンロードする。
 % wget http://downloads.sourceforge.net/drupal-jp/drupal-6.24-japanese_024.tgz
 % tar xf drupal-6.24-japanese_024.tgz

展開したディレクトリから、不要なファイルを削除する。
 % rm -fr profiles/ scripts/ sites/
 % find . -name '*.txt'|sed /robots.txt/d|xargs rm

このディレクトリをサーバの非公開ディレクトリにアップロードし、ファイルのパーミッションを設定する。
 % find sites/default/files -type d | xargs chmod 777

旧バージョンの準備

ついで、旧バージョンのサイトの準備を行う。
まずはサイトをオフラインにして、Backup and migrate でサイトのデータをバックアップする。
次に拡張モジュールを無効化する。
Multilanguage
すべてチェックアウト
その他
すべてチェックアウト

ここで、旧バージョンのディレクトリから最新版のディレクトリへ、robots.txt, .htaccess, sites/ をコピーする。
次に拡張モジュールのコピーである。運用中サイトの module のうち、以下が拡張モジュールとなる。

 backup_migrate diff i18n imageapi imagecache imce inline itweak_upload pearwiki_filter scanner taxonomy_access translation_overview update_locale wikitools

これらをディレクトリごと、最新版の module にコピーする。

最後に、旧バージョンの module/user/user.css を、最新版の module/user にコピーする。(Drupal のカスタマイズの、CSS の修正の項参照)

最新版と運用中のディレクトリを入れ替える

ここまできたら、旧バージョンの Drupal ディレクトリを非公開のディレクトリに移動し、最新版を公開ディレクトリに移す。
最新版のディレクトリ名が旧バージョンと同じになるよう、また旧バージョンのディレクトリを上書きなどしないよう、注意する。
なおこの間、作業しているブラウザを閉じてはいけない。誤って閉じてしまったときは http://www.hlab.sys.es.osaka-u.ac.jp/grasp/user を開くと、再ログインできる。

仕上げ

最新版のディレクトリを公開ディレクトリに移したら、閉じないでおいたブラウザページで再読み込みを行う。
さきほど無効にした拡張モジュールをもとに戻し、メッセージにしたがってアクセス権の再構築や、update.php の実行を行う。

管理セクション › リポート › 入手可能な最新版 を開いて、すべてのバージョンが最新であることを確認したら完了。
おつかれさまでした。

(参考)http://www.webgogo.jp/drupal/upgrade_5

Wiki 書式について

当サイトでは Wikipedia のシステムである Mediawiki スタイルの書式を採用している。
ただし、本物とは仕様がことなる。
当ページは書式のメモであり、編集コマンドで見られるソースを利用する。

見出し

1~6個の=で囲まれた行は見出しになる。

見出し2

見出し3

見出し4

見出し5
見出し6
=見出し7=

見出しのレベルは6までなので、=を7つ書いた見出し7はレベル6見出しとして扱われる。
なお、見出しにアンカーはつかないので、見出しにジャンプするリンクは書けない。

整形済みテキスト

行頭が空白で始まる行は、整形済みテキストとみなされ、黒字に白文字でコマンドライン端末風に表示される。

 黒字に白文字>
 コマンドライン端末風>

リスト

*で始まる行は番号なしのリスト、#で始まる行は番号つきのリストになる。
  1. 最初
  2. 最後
;で始まる行と:で始まる行の組で、定義つきリストになる。
定義つきリスト
定義つきリストとは、語句と語句に対する解説がセットになったリストのこと。
番号つきリスト
番号つきリストとは、項目の見出しが連番になったリストのこと。
番号なしリスト
番号なしリストとは、項目の見出しが記号になったリストのこと。
リストの中にさらにリストを書くこともできる。
  1. 三大ギタリスト
    1. クラプトン
    2. ベック
    3. ペイジ

ただし、番号つきリストの中に番号なしリストを書いたり、逆に番号なしリストの中に番号つきリストを書いたりはできない。

テーブル

 {| と |} ではさまれた行がテーブルになる。
テーブルの例
見出し1 見出し2 見出し3
データ1 データ2 データ3
データ4 データ5 データ6
データ7 データ8 データ9

本文の修飾

二つの'で囲んだ文字は イタリック体 になる。
三つの'で囲んだ文字は ボールド体 になる。
五つの'で囲んだ文字は、イタリック体でボールド体 になる。

内部リンク

「Wiki 書式について」という字句を二つの大カッコで囲んで[[Wiki 書式について]]などと書くと、Wiki 書式についてページへのリンクが埋め込まれる。
字句にあたるページが存在しない場合は、新しいページを作成する画面に飛ぶ。(空白の有無等で、指定した字句が思ったように展開されない場合がある)

また、[[image:ファイル名]]など、二つ重ねた大カッコ[] の中で image: のあとに画像ファイルを指定すると、アップロード済みの画像を表示できる。
imagecache_sample.png
編集画面でそのページにじかにアップロードした画像があれば、inline タグも使用できる。詳しくは画像ファイルのアップロードと埋め込みの仕方参照。

外部リンク

URLを書くとそのままリンクになる。 http://choreonoid.org
また、Choreonoid ホームページのように、URLと解説文を [] で囲むと、解説文がURLへのリンクになる。
URLと解説文を|で区切る書式も定義されているが、この書き方だと解説文に複数の空白があるとき表示がうまくいかないので、使わない方が良い。

画像ファイルのアップロードと埋め込みの仕方

ページの作成・編集画面で、ドラッグ&ドロップによる画像のアップロードが可能です。

画像ファイルのアップロード

ページの作成・編集画面の下の方に、「Attach files to this book page」というブロックがあります。
[inline:Attach_files.png]

通常は、参照ボタンを押してファイルダイアログからアップロードするファイルを選びますが、FireFoxに限り、参照ボタンにエクスプローラや nautilus などのファイルブラウザーから画像ファイルをドラッグ&ドロップするだけでにファイルをアップロードできます。

アップロードされた画像はサムネイルつきのリストに表示されます。
[inline:Image_thumbnail.png]

ファイルは20MB以下の容量で、画像ファイルとして jpg(jpeg), gif, png に対応しているほか、txt, doc, xls, pdf, pps, odt, ods, odp, zip, gz, taz をアップロードできます。

ファイル名のあとに=で画像のタイトルを指定することもできます。
[inline:Attach_files.png=サムネイルつきのリスト]

対応ブラウザについて

ドラッグ&ドロップのために、iTweak upload モジュールを利用しています。
FireFox 10.0 で動作していますが、IE9, Chrome 17 では動作しないようです。

アップロードした画像の埋め込み

こうしてアップロードした画像は、本文を編集するとき[]で囲んだインラインタグを書くことで埋め込むことができます。
インラインタグは inline:番号(リストの上から順に1,2,3,...) または inline:ファイル名 と書きます。

image タグ

また、二つの大カッコで囲んだ image タグも、今までどおり使えます。
インラインタグはファイルをアップロードしたそのページでしか使えませんが、image タグなら別のページにアップロードした画像も流用できます。
Attach_files.png

画像のサイズ指定は image タグでしかできません。
ファイル名のあとを|で区切って、320pxとすると横320ピクセルで、640x480pxとすると縦640横480ピクセルで、80%とすると元画像のサイズの80%で表示されます。
さらに|で区切り、left/center/rightのどれかを指定して、画像の左寄せ/中央寄せ/右寄せの指定もできます。
|で区切った節が、画像のサイズ指定でも、寄せ方向の指定でもない場合、画像のタイトルとみなされます。
inlineタグの=で指定した文字列はaltとtitle の両方になりますが、imageタグの場合この画像のタイトルはtitleにだけセットされ、altは画像ファイル名となります。