Top / lucid / test / Drupal_pkg

CMSのDrupalのインストール(パッケージで入れる場合編)

etch/test/Drupal

前提条件

OSインストール直後の状態からでは、

apache2、php5、mysql-server、php5-mysql

のインストールが完了している必要がある。

つぎに、管理用にphpmyadminをインストールする。

$ sudo apt-get install phpmyadmin

インストール時に、mysqlの管理パスワードを聞かれる。次に、phpmyadminユーザー用のパスワードが聞かれるので、2度入力する。

その後、URLのhttp://SERVERNAME/phpmyadmin/ にアクセスして、ユーザー名:phpmyadmin パスワード: (入力したパスワード) を入れてGUIにログインする。

その後、パッケージでdrupal6をインストールすると利用が可能になる。

$ sudo apt-get install drupal6
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  bsd-mailx curl dbconfig-common exim4 exim4-base exim4-config
  exim4-daemon-light fontconfig-config libcurl3 libfontconfig1 libgd2-xpm
  libjpeg62 libt1-5 libxpm4 php5-gd ttf-dejavu-core wwwconfig-common
提案パッケージ:
  mail-reader eximon4 exim4-doc-html exim4-doc-info libmail-spf-query-perl
  swaks libgd-tools postgresql-client apache apache-ssl
推奨パッケージ:
  mailx
以下のパッケージが新たにインストールされます:
  bsd-mailx curl dbconfig-common drupal6 exim4 exim4-base exim4-config
  exim4-daemon-light fontconfig-config libcurl3 libfontconfig1 libgd2-xpm
  libjpeg62 libt1-5 libxpm4 php5-gd ttf-dejavu-core wwwconfig-common
アップグレード: 0 個、新規インストール: 18 個、削除: 0 個、保留: 0 個。
6,358kB のアーカイブを取得する必要があります。
この操作後に追加で 17.4MB のディスク容量が消費されます。
続行しますか [Y/n]? y

インストール後、apache2を再起動する。

まずは英語で試す

http://SERVERIP/drupal6/install.php にアクセスすると、英語のインストーラーが動く。

日本語化

そこで、画面の指示に従って、japaneseのtranrationをダウンロードして、 modules, profiles, themes 以下のファイルをコピーする。

$ sudo cp -rp modules/* /usr/share/drupal6/modules/
$ sudo cp -rp profiles/* /usr/share/drupal6/profiles/
$ sudo cp -rp themes/* /usr/share/drupal6/themes/

再度アクセスすると、日本語が選択できるようになるので、日本語を選択して設定していく。

最終的にインストールが完了すると、mysql内に drupal6というDBがあり

クリーンURLの設定

apacheのmod_rewriteを有効にする。

$ sudo a2enmod rewrite
$ sudo /etc/init.d/apache2 restart

次に、drupalの .htaccessの設定を変更する。

# diff -uN htaccess.bk  htaccess
--- htaccess.bk 2010-04-12 22:18:17.000000000 +0900
+++ htaccess    2010-07-03 23:49:02.147161728 +0900
@@ -101,6 +101,7 @@
   # For example if your site is at http://example.com/drupal uncomment and
   # modify the following line:
   # RewriteBase /drupal
+  RewriteBase /drupal6
   #
   # If your site is running in a VirtualDocumentRoot at http://example.com/,
   # uncomment the following line:

drupalのディレクトリが /durpal6 の場合には、上記のように変える。 /の場合には、/にする。

Document Rootをdrupalにする

マルチサイトの作成

マルチサイトを作成してみる。

/usr/share/drupal6/sitesにインストールされているので、その下にもうひとつのサイト用にディレクトリを作成する。

$ cd /usr/share/drupal6/site
$ sudo mkdir example

次に、setting.phpをコピーする。

$ sudo cp default/settings.php ./example/
# chmod 777 example
# chmod 666 example/settings.php

mysql関連メモ

dbconfig-common

こっからは、完全なメモ

# mysql -u root -p Enter password:

mysql> create database drupal6;

mysql> show databases;

  1. --------------------+
    Database
  2. --------------------+
    information_schema
    drupal6
    mysql
  3. --------------------+ 3 rows in set (0.00 sec)

http://drupal.org/node/11118/release から日本語モジュールをダウンロード

modules/* などをコピー

install.php でOK

DBをもうひとつ作成

cp -rp site/default site/web1.example.com

中の設定をもうひとつのDBにへんこう install.phpでもうひとつのサイトが完成

apacheの設定なしでも、標準のapacheの設定でdrupalにアクセスがくるので、 drupalで違う コンテンツを提供するのでok

/durpal6をやめて / に conf.dの下の drupalのaliasを / に変更

再起動すると / でアクセスできるが、/phpmyadminが aliasでかぶるために使用できなくなる。

conf.dの下のファイル名順にapacheは読むみたい。 phpadmin.confを 0phpadmin.confみたいに先に読み込まれるようにすると、 バッティングしないみたい。

どんなdrupal的なドメインでも、apacheの設定はひとつなので、どのドメインで アクセスしても、phpmyadminが見られる。 これはこれで、困ったことにもなる。

アクセスログも分離できない。 なので、バーチャルドメインの設定をすることに。


やりたい方向性

特定のドメインだけに、nonバーチャルな環境を引き継ぐ。 conf.dの内容を特定ドメインに引越し バーチャルのものは、phpmyadminとかはアクセスできないように。

DBの作成などがphpmyadminから上手にできるように / でアクセスする Aliasはconfの最後で読み込むように。


まずは、mysql-serverのインストール

$ sudo apt-get install mysql-server
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient16
  libnet-daemon-perl libplrpc-perl mysql-client-5.1 mysql-client-core-5.1
  mysql-common mysql-server-5.1 mysql-server-core-5.1
提案パッケージ:
  dbishell libipc-sharedcache-perl tinyca mailx
以下のパッケージが新たにインストールされます:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient16
  libnet-daemon-perl libplrpc-perl mysql-client-5.1 mysql-client-core-5.1
  mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1
アップグレード: 0 個、新規インストール: 12 個、削除: 0 個、保留: 1 個。
23.2MB のアーカイブを取得する必要があります。
この操作後に追加で 54.8MB のディスク容量が消費されます。
続行しますか [Y/n]?
mysql-server-5.1 を設定しています
強制ではありませんが、MySQL を管理する "root" ユーザのパスワードを設定することを強くお勧めします。
MySQL の "root" ユーザに対する新しいパスワード:

を入力する。先ほど入力した mysqlのrootユーザーでDBにログインして一覧を確認する。

# mysql -u root -p
Enter password:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)

apache2とphp5をインストールする。

$ sudo apt-get install apache2 php5
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
  libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap php5-common ssl-cert
提案パッケージ:
  apache2-doc apache2-suexec apache2-suexec-custom php-pear php5-suhosin
以下のパッケージが新たにインストールされます:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
  libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap php5 php5-common ssl-cert
アップグレード: 0 個、新規インストール: 13 個、削除: 0 個、保留: 1 個。
6,716kB のアーカイブを取得する必要があります。
この操作後に追加で 19.0MB のディスク容量が消費されます。
続行しますか [Y/n]?

インストール後に、一度apacheをリスタートする。(そうでないとPHPを認識しないことがある。) /var/www/index.phpにphpinfoを設置してみて、IPアドレスでアクセスをしてPHPが動作しているかを確認する。

次に、phpmyadminをインストール

$ sudo apt-get install phpmyadmin
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  dbconfig-common fontconfig-config javascript-common libfontconfig1
  libgd2-xpm libjpeg62 libjs-mootools libmcrypt4 libt1-5 libxpm4 php5-gd
  php5-mcrypt php5-mysql ttf-dejavu-core wwwconfig-common
提案パッケージ:
  libgd-tools libmcrypt-dev mcrypt postgresql-client apache apache-ssl
以下のパッケージが新たにインストールされます:
  dbconfig-common fontconfig-config javascript-common libfontconfig1
  libgd2-xpm libjpeg62 libjs-mootools libmcrypt4 libt1-5 libxpm4 php5-gd
  php5-mcrypt php5-mysql phpmyadmin ttf-dejavu-core wwwconfig-common
アップグレード: 0 個、新規インストール: 16 個、削除: 0 個、保留: 1 個。
7,460kB のアーカイブを取得する必要があります。
この操作後に追加で 26.2MB のディスク容量が消費されます。
続行しますか [Y/n]?
phpmyadmin のデータベースを dbconfig-common で設定しますか?     

については、「いいえ」としてみる。

http://SERVERIP/phpmyadmin にアクセスすれば、phpmyadminにアクセスが可能。

phpmyadminでDBをまず作成する。 その後、作成したDBを左のフレームから選択する。特権からあたらしいユーザーを作成する。ユーザーは、下記のように作成してみる。

ユーザー名dtest
ホストローカル▼
ユーザ専用データベース◎Grant all privileges on database "dtest"

あとは、そのまま「実行する」

drupalのインストール

$ sudo apt-get install drupal6
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  bsd-mailx curl exim4 exim4-base exim4-config exim4-daemon-light libcurl3
提案パッケージ:
  mail-reader eximon4 exim4-doc-html exim4-doc-info libmail-spf-query-perl
  swaks
推奨パッケージ:
  mailx
以下のパッケージが新たにインストールされます:
  bsd-mailx curl drupal6 exim4 exim4-base exim4-config exim4-daemon-light
  libcurl3
アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 1 個。
3,591kB のアーカイブを取得する必要があります。
この操作後に追加で 10.2MB のディスク容量が消費されます。
続行しますか [Y/n]?
drupal6 データベースを dbconfig-common で設定しますか?     

「いいえ」とした。

その後、あえで
$ dpkg-reconfigure drupal6
を実行して、drupal6用のDBを作成する。UNIXドメインでmysqlを選択し、DB名とパスワードを入れた。

http://drupal.org/node/11118/release から日本語モジュールをダウンロードする。バージョン番号が等しいものをとってくる。ダウンロード後は、

$ mkdir drupal6-ja
$ cd drupal6-ja/

その後はrootで

# tar xvfz ../ja-6.x-1.6.tar.gz
# cp -rp modules/* /usr/share/drupal6/modules/
# cp -rp profiles/* /usr/share/drupal6/profiles/
# cp -rp themes/* /usr/share/drupal6/themes/

http://IPアドレス/drupal6/install.phpを実行して、環境を構築する。

その後、下記のコマンドを実行してmultisiteを作成する。

# cd /usr/share/drupal6/sites
# cp -rp default/ d1.local.kensuke.jp
# cd d1.local.kensuke.jp

d1ディレクトに行き、dbconfig.phpを編集する。 この後、 http://d1.local.kensuke.jp/drupal6/install.phpを実行して、環境を構築する。

これで、別の環境が2つできた。

次に

特定のドメインだけに、nonバーチャルな環境を引き継ぐ。
conf.dの内容を特定ドメインに引越し
バーチャルのものは、phpmyadminとかはアクセスできないように。

を実現する。 defaultのドメイン(IPアドレスでのアクセス)に、なるべく管理系の設定は移動させる。まず、/etc/apache2/conf.d 以下の次のファイルを defaultに移動させる。

# rm javascript-common.conf
# rm phpmyadmin.conf
# rm drupal6.conf

defaultの中に次のものを追記する。

# diff -uN default.bk default
--- default.bk  2010-08-19 12:19:42.000000000 +0900
+++ default     2010-09-24 18:45:39.139103758 +0900
@@ -38,4 +38,8 @@
         Allow from 127.0.0.0/255.0.0.0 ::1/128
     </Directory>

+    Include /etc/javascript-common/javascript-common.conf
+    Include /etc/phpmyadmin/apache.conf
+    Include /etc/drupal/6/apache.conf
+
 </VirtualHost>

IPアドレスで、phpmyadminやdrupalにアクセスして問題なく表示されることを確認する。

(未確認) 次に、バーチャルドメインでは、phpmyadminの設定をはずして記載して、phpmyadminにはアクセスしないことを確認する。

drupalを / でアクセス

drupalを / でアクセスできるようにすると、phpmyadminと設定がバッティングする可能性がある。それはおいおい解説する方針でまずは drupalの変更。

drupal6の apacheの設定を Alias の部分を変更する。

# cd /etc/drupal/6
# diff -uN apache.conf.orig apache.conf
--- apache.conf.orig    2010-04-12 22:18:14.000000000 +0900
+++ apache.conf 2010-09-24 18:57:18.283197323 +0900
@@ -1,4 +1,5 @@
-Alias /drupal6 /usr/share/drupal6
+#Alias /drupal6 /usr/share/drupal6
+Alias / /usr/share/drupal6

 <Directory /usr/share/drupal6/>
        Options +FollowSymLinks

でも、この方法はだめ。Document Rootと Aliasがかぶるためなのか、使えない。 なので、 IPでアクセスのときは、Aliasを戻して、/drupal6でアクセスできるように設定した。

virtualドメイン

まずは、drupal6をバーチャルドメインで使用するための方法

# cp /usr/share/doc/apache2/examples/apache2/extra/httpd-vhosts.conf /etc/apache2/sites-available/
# mv httpd-vhosts.conf d1
# vi d1
# cat d1
<VirtualHost *:80>
   ServerAdmin webmaster@d1.local.kensuke.jp
   DocumentRoot "/usr/share/drupal6"
   ServerName d1.local.kensuke.jp
   ServerAlias www.d1.local.kensuke.jp
   ErrorLog "/var/log/apache2/d1-error.log"
   CustomLog "/var/log/apache2/d1-access_log" combined

  <Directory /usr/share/drupal6/>
       Options +FollowSymLinks
       AllowOverride All
       order allow,deny
       allow from all
  </Directory>
</VirtualHost>
# a2ensite d1

moduleとthemeの追加

/usr/share/doc/drupal6/README.Debian.gzによると、moduleとthemeの追加は、 /usr/local 以下において lnikを張るのが良いと書いてある。(dpkgで更新されないために)

なので、以下のように対処をする。 # cd /usr/local/share/ # mkdir drupal6 # mkdir drupal6/modules

そもそも、追加のmoduleとかはsite以下に保存するのが基本なので、心配しなくとも良い。(site以下は、実体が/etc/いかにあるので安全)

logとcronの処理

まだやっていないが、2つめ以降のlogとcronの処理を設定が必要。

クリーンURLの設定

クリーンURLについては、htaccessの設定を変更する必要あり。 そのため、バーチャルドメインごとにおいてあるディレクトリを変えるなどすると、使えなくなってしまう。(htaccessは共通なので..のはず)

今回は / とすることにして、htaccessを書き換える。

# cd /etc/drupal/6
# vi htaccess
# diff -uN htaccess.orig htaccess
--- htaccess.orig       2010-04-12 22:18:17.000000000 +0900
+++ htaccess    2010-09-25 17:30:24.696916018 +0900
@@ -104,7 +104,7 @@
   #
   # If your site is running in a VirtualDocumentRoot at http://example.com/,
   # uncomment the following line:
-  # RewriteBase /
+  RewriteBase /

   # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
   RewriteCond %{REQUEST_FILENAME} !-f

次に、rewirteのモジュールを有効化する。

# a2enmod rewrite
# service apache2 restart

その後、GUIからクリーンURLを有効にする。

携帯対応

携帯対応のために、まずはSwitchthemeモジュールをインストールしてみる。 http://drupal.org/project/switchtheme からダウンロードする。 ダウンロード後に、各サイトごとのmodulesの下にcopyをする。

# tar xvfz switchtheme-6.x-1.1.tar.gz
# mv switchtheme /usr/share/drupal6/sites/d2.local.kensuke.jp/modules/

モジュールを有効にして、権限で誰の画面に出るようにするか、blockで表示場所を決める。(だいたいこんな感じ)

  • Japanese Mobileモジュールを使用してみる。 まずは、依存しているURL alter モジュールをインストールする。

URL alterはここ http://drupal.org/project/url_alter から、ダウンロード ここに 日本語訳poがある http://localize.drupal.org/translate/downloads?project=url_alter

次に、Japanese Mobileテーマと、japanese_mobile_helperモジュールをインストールする。

switchthemeで、japanese mobileを選択して、携帯向けに表示されることを確認する。

次に、browsecapを使用して、User-Agentごとに切り替わるようにする http://drupal.org/node/664424 に従って、一部コードを変更しないとうまく動かないので、変更する。

browsecapをインストールすると、 switchthemeにbrowserごとにテーマを設定する設定が出る。そこで、User-agentごとの設定をする。

Calender表示

うまくいくかわからないが、 http://drupal.org/node/326061#comment-1077193 に従ってcalenderを実現してみる。 まずは、CCKモジュールをダウンロードしてmodulesに展開、viewsモジュールをダウンロードしてmodulesに展開、Calendarモジュールをダウンロードしてmodulesに展開、Dataモジュールをダウンロードしてmodulesに展開

http://drupal.org/node/797042にも従ってやると良い。

Calenderモジュールをenableにする。すると warningが表示される。 http://drupal.org/node/549884 の#10 に従ってpatchを当てる。

# cd sites/all/modules/calendar
# patch -p0 < /home/kensuke/drupal6-download/calendar-6.x-2.2-613528-5.patch

掲示板

guestbookモジュールを試したが、ユーザー名などがdurpalのログインユーザー名が自動的に入る仕組みになっている。自分で入れる項目が無いのがちょっと残念。 それ以外は、そこそこ良いのだが。でも、他に良いのがないのでこれで行くか。

menu breadcrumb

メニューに従ったパンくずリスト インストールして、モジュールの設定でチェックを入れるだけで、簡単にメニューに従ったパンくずリストができる。

path_access

pathを使用して、アクセス制限を行う。 membersに、特定のユーザー/グループのみアクセスを可能にする。

その他のモジュール

今まで使用しているdrupalに入っているモジュールの紹介

  • Advanced help
  • nodewords
  • Google Analytics
  • CKEditor
  • IMCE
  • CCK
  • Data/Time
  • Views
  • Browscap
  • Guestbook
  • JP mobile helper
  • Switchtheme

入れたいと思うモジュール

  • XMLsitemap
  • Menu Breadcrumb メニューに従ってパンくずリスト
  • http://drupal.6krpm.jp/node/25 にしたがってパンくずリストにページ名を出す
  • Scheduler
  • Text Resize
  • Site map
  • Admin Menu 画面の上に管理者用のメニューバーを表示。便利。
  • Admin Role モジュールを追加したときに管理者権限を自動的に追加。
  • Advanced Help ヘルプの拡張。
  • Backup and Migrate バックアップおよび他のマシンへの引越しのためのデータを吐き出すモジュール。
  • Blog Addons ブログ用アドオン。 ページに表示するブロガーの数やページごとのブログ記事の数などを設定できる。
  • Blog Info アカウント情報のページにブログ用のフィールドを追加。うまく動作していないみたい?
  • Blog Theme ブログに特定のテーマを適用。
  • Calendar カレンダーの表示。
  • CCK 言わずと知れたコンテンツコンストラクションキット。これがなければコンテンツタイプを追加するのはめんどくさくてしょうがない。
  • Date 日付管理用モジュール。
  • Embedded Media Field ページにメディアを埋め込むフィールドを追加する。
  • Event イベント管理用モジュール。
  • Fast Gallery 大量の写真を効率的にアップロード・管理する。
  • File Field ファイルアップロード用フィールドを追加。
  • Flash Node Flashを使ったノードを利用可能にする。
  • HTML Purifier HTMLのチェックと修正。不正なタグを自動的に直してくれる。
  • Image 画像処理用モジュール。
  • Image Cache イメージの操作、サムネール作成など。
  • IMCE 画像やファイルなどのアップロード/管理のためのモジュール。管理画面で画像/ファイルの一括登録や管理ができて便利。
  • IMCE Mkdir IMCEでディレクトリを作るモジュール。
  • Image Assist ノードに手軽に画像を挿入できようにするモジュール。
  • Link リンクノード作成。
  • Markdown マークダウンの入力フィルタ。Textileより細かく操作できる。
  • Mobile Theme モバイルデバイスからのアクセスに適したテーマ。
  • Node Clone ノードのクローンを作る。同じようなページを作るときに便利。
  • Node Access ノード単位のアクセスコントロール。
  • Panels ページを複数のパネルに分け、各パネルにコンテンツを追加できる。
  • Pathauto タイトルから自動的に適当なパスを生成。
  • Statistics Advanced 詳細なアクセス統計の表示。
  • Textile Textileを使った入力フィルタ。XHTML的にきれいなコードを吐く。
  • Theme Setter コンテンツタイプやロールごとに特定のテーマをセット。
  • TinyTiny MCE WYSIWYG入力。うざったいので使っていない。
  • Uploadpath ファイルをアップロードするパスを指定。
  • Views 条件を指定してコンテンツを表示。
  • Web Form フォーム作成用モジュール。簡単なフォーム作りには便利。
  • XML Sitemap Googleにサイト情報を送信する。

トップ   一覧 単語検索   最終更新のRSS
Last-modified: 2010-12-12 (日) 07:53:55 (2691d)