メルマガをWordPressでできないか?ということについて、以前に調査していたのだが、やりたいことに該当する方法ではなかったので、オープンソースのメルマガ発行ソフトのPHPListを使うことにしようかと思って調査したのでメモ。ちなみにWordPressとPHPListを繋ぐPHPList Form Integrationというプラグインがあるのでこれを使う予定。
参考にさせていただいたサイト
- phplist予約配信 メール配信ソフトの使い方(4)
- 【Linux】オープンソースなメールマガジン発行システムphplistのインストールと日本語化
- CORESERVER.JPのDrupalをCGIモードで動かす※PHPをCGIモードで動かしたときの参考
ではいきまーす。
- まずはここからPHPListの日本語化されたものをダウンロード。
http://www.d-ip.jp/download/pivot/entry.php?id=14 - ダウンロードしたファイルを解凍し、public_html直下にあるlistsディレクトリをWordPressと同じディレクトリに入れる。
- lists/config/config.phpを修正する。インストールするデータベース名、データベースユーザ名、パスワードなどを修正。ここはWordPressと同じものでOK!!あとPLUGIN_ROOT_DIRが原因でエラーが出てたので、コメントアウトしておいた(この辺りはよくわかってない)。TESTの値も0にしておく(そうしないとメール送れないので。後で0にしてもよい。)
- PHPがsafe modeで動いてると問題があるかもね!というメッセージが出続けるので、CGIモードで動かすために、lists/admin/.htaccessに以下を追加する。
AddHandler application/x-httpd-phpcgi .php
- CGIモードで動くとphp.iniの情報が変わってしまうので、独自に設定するためにlists/admin/以下にphp.iniを作成する。
magic_quotes_gpc = On register_globals = Off session.auto_start = Off mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off # /tmp以下にセッションファイルが作れないというエラーが出たので、 # 自分のディレクトリ直下にtmpを生成しておくこと session.save_path = "/virtual/********/tmp"
- http://自分のWordPressのドメイン/lists/admin/にアクセスし、PHPListをインストールする。
- 管理者のパスワードを変えておく。
- インストールが問題なく終わったら、サンプルでインストールされているリスト(メルマガのこと)をアクティブにしておく(WordPressのプラグイン経由でPHPListを使うため)。
- CORESERVERのcronを使ってメルマガ配信するために、シェルスクリプトを作成する。名前はphplist.shとした。
#!/bin/sh wget -q -O - 'http://自分のWordPressのドメイン/lists/admin/index.php?page=processqueue&login=管理者名&password=パスワード' >/dev/null
このファイルは/virtual/********/phplist.shに置いた。実行権限を与えておくこと(705)。
- CORESERVERのcronに/virtual/********/phplist.shを登録する。
普通のサーバのcronならば、*/15 * * * * /virtual/********/phplist.sh
でよいと思うのだが、CORESERVERでは分に入力できる文字列が2文字までみたいなので、*/15と入力できなかった!やっていいのかどうかはわからないが、4行分使って、
0 * * * * /virtual/********/phplist.sh 15 * * * * /virtual/********/phplist.sh 30 * * * * /virtual/********/phplist.sh 45 * * * * /virtual/********/phplist.sh
と設定しておいた。
これで15分毎にチェックされ、キューに入っているメルマガが15分毎に配信されるはず。
さっきまで試していたことなので、だいたい合っているはず。
WordPressのプラグインであるPHPList Form Integration
の設定については後でまた書きたいと思う。