【Linux】オープンソースなメールマガジン発行システムphplistのインストールと日本語化

phplistというオープンソースなメール配信システムをインストール、調査したときのメモ。環境はCentOS5.3+Xampp for linux(lampp) 1.7.1

lamppのインストールはこちらの記事を参考に。

ここからダウンロードしてきてサーバーで解凍。
# tar xzvf phplist-2.10.10.tgz.gz

<2009/09/02 追記>
2.10.10はバグがあるみたいなので、2.10.9を使うのがお勧め。ここから日本語化されているのをダウンロードできる。下の方に書いてある日本語化する処理をしなくてよくなる。

適当なディレクトリに移動
#mv phplist-2.10.10 /opt/phplist

MySQLにphplist用のデータベースを作成(utf8_general_ciで)。xamppの管理画面からphpmyadminにアクセスして作成。アクセスできるユーザーも適宜作成。

設定ファイルを修正
# vi phplist/public_html/lists/config/config.php

# what is your Mysql database server
$database_host = "localhost";

# what is the name of the database we are using
$database_name = "phplistdb";

# who do we log in as?
$database_user = "phplist";

# and what password do we use
$database_password = 'phplist';

apacheの設定ファイルを修正。

<VirtualHost *:80>
  DocumentRoot /opt/wordpress-phplist
  ServerName phplist.exbridge.jp

  <Directory />
    AllowOverride All
  </Directory>

  Alias /core "/opt/phplist/public_html/lists"
  <Directory "/opt/phplist/public_html/lists">
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

</VirtualHost>

これはwordpressのプラグインからphplistを使用する前提で構成しているので、適宜環境に合わせて設定する。

合わせてphplistの設定ファイルを修正
# vi phplist/public_html/lists/config/config.php

$pageroot = '/core';
$adminpages = '/core/admin';

日本語ファイルは標準で入っているので、phplist/public_html/lists/admin/language.phpのjaのコメントアウトを削除して有効にする。さらにconfig.phpを下のように修正する。

$language_module = "japanese.inc";

これでweb経由でアクセスするとインストールできる。
http://phplist.exbridge.jp/core/admin/

Japaneseを選択。文字化けする場合はブラウザのエンコードをEUCにする。

image

データベースの初期化をクリック

ここでエラー。

Database error 1071 while doing query Specified key was too long; max key length is 1000 bytes

致命的なエラー: Debugging not configured properly

ここのブログを参考にしながら、どうしようか迷ったあげく、データベースの構造(文字列長)を変えた。phplist/public_html/lists/admin/structure.phpの67行あたり

"user_blacklist_data" => array(
    "email" => array("varchar(233) not null unique","Email"),
    "name" => array("varchar(100) not null","Name of Dataitem"),
    "data" => array("text",""),
    "index_1" => array("emailidx (email)",""),
    "index_2" => array("emailnameidx (email,name)",""),
),

255から233に変更。

データベースを一旦削除してもう一回実行してみると成功。

<2009/09/02 追記>
Xampp for linuxのversion 1.7.2では起きなかったのでMySQLのバージョンを上げれば同様の現象は起きないと思う。

つぎは一番下のリンクをクリックしてphplistのセットアップ

image

管理者パスワードの変更だけは忘れないようにやっておく。

インストール直後はメールを送信しないtest modeで動いているので、メールを送信したい場合はconfig.phpを修正する。

define ("TEST",0); //1:test mode, 0:exec mode

実際に動かしてみたら、テストメッセージが文字化けるのと件名が文字化ける現象を発見。

デフォルトページのaliasを変更した場合は「設定」から「購読ページURL」~「メール転送ページURL」を変更する必要あり。