2008年3月アーカイブ

cronの設定の訂正

| | トラックバック(0)

 使えるねっとで、また少し勉強させてもらった。ちょい、また恥かいたが^^;

 OpenPNEのcron設定に一部ミスがあったことに気付かせてもらいました(恥)

 

となっている、単純な命令文。tool_send_dairy_news.phpが見つからないというから、多分、絶対パスが必要なのだろうと、
#! /bin/sh
cd $1
$2 /var/www/html/sns/bin/tool_send_dairy_news.php > /dev/null
 

の部分。
 cronに設定するシェルスクリプト自体にパスをきちんとわたしておかなかったため、だったらしい。それをきちんとすれば、.cornファイルを書き換える必要はなかったわけで...。

 で、先程.cronファイルを元通りにしてみたら...動きました...。

 あとで、cron設定のブログを訂正しておこう...。

スパムメールって...

| | トラックバック(0)

 どなたも、経験されているとは思いますが、スパムメール...。

 96年から使っているメインのアドレスはすでに汚染状態でここ数年使ってません。毎日100通近いスパムが来るようになると、もう見たくもなくなりますな。

 スパムメールのおかげで、すでにメインのメールアドレスは3度ほど変更してます。もう面倒なこと...。ただ、自分のメールは簡単に変更できるのですが、クライアントのメールはそんなに簡単に変えてください、とは言えないので、困ったものです。
 最近メインのクライアントのメールも同じ状況で、アクセス数が増えていくに従ってスパムも増えていく次第で...。さすがに対処しなきゃならなくなったので、SpamAssassinを導入することにしました。久しぶりにWebminと戦うことに...。

 ここのサーバーは、sendmailなので、比較的設定は簡単でだった。SpamAssassinはインストールされていない。けれど、Webminのパネルにはメニューがあるので、メニュー項目を開いてみると、なんかインストールするなら、ここをクリックしろとか書いてある...。押してみる...ポチッと。コンソール画面がはしり、ダウンロードが始まり、あれやかれやという間にインストール完了とか...(笑

 で、色々調べること数時間...SpamAssassin自体は一種のフィルターであって、単独では使えないことに気が分かる。メールの振り分けをする、Procmailというプログラムと連携させなければならないらしい。が、これもまあ簡単で、SpamAssassinから設定ができるようになっている。とりあえず、ヘッダにスパム判断だけ追加して、あとは通常通りに受信する設定にする。あとは、SendmailからProcmailにメールをわたす設定が必要なのだけれど、Sendmailにはすでに、Featureで、local_procmailが設定されているので、即機能するようにできているらしい。

 確認すると、ヘッダに確かに書き込まれている。OK。

 あとはクライアントの設定を近日中にやって、担当者の仕事を軽減するようにしてあげるだけだ...。

 問題は、今構築中のサイトなんだが...。こちらは、qmailを使っているので、Webminからの設定ができないようだ。SpamAssassinのインストールと、Procmailとの連携の設定まではいけたのだが、qmailからProcmailへメールをわたす方法が分からない。

 数時間かけて、ggってみた結果、いくつか設定候補にあたったが、どれも機能せず。うむ、困った。いくつかの資料によると、

| preline procmail
| preline /usr/bin/procmail
| /usr/bin/preline /usr/bin/procmail

とか、

| /usr/bin/procmail ./.etc/procmailrc

とか、色々あったのだけれど、どれもダメで、スタック状態。

一応メールログを見てみると、
deferral: procmail:_Couldn't_create_"/var/mail/test"/
 と出ている。ということは、procmailまではメールはわたっているが、ディレクトリかファイルをつくれない、というところで失敗しているらしい...。
 うむ...。

 しかし、ggっても、qmail+procmailの資料って、あんまり多くはないんだよね。しかも、Webminの設定は皆無。まあ、Webmi+qmail自体が少ないらしいので...。

 さて、さて、どうしたものか...。

 やってしまった...><;

 昨夜、Pleskの設定で、IPによる制限をかけようとして、失敗してしまった。

 本来なら、リストにあるIPから以外のアクセスを禁止する、という設定にしなければならないところ、自IPからのアクセスを禁止する設定にしてしまった...。

 しかし、本来ならば、設定IP以外からアクセスすればログインできるはずが、自宅のIPでも、Air H"経由でもログインできない...なにか設定間違っただろうか...。

 こちらの設定ミスによるトラブルなので、有料サポートを依頼した。

 夜中にサーバーの設定なんかするもんじゃないなぁ...(がっくし)

 使えるねっとのフォーラムで聞いてみた。速攻返事がきて、解決した(笑

 経緯は→http://forum.tsukaeru.net/viewtopic.php?t=3647

 で、その結果をまとめたのを、XOOPS Users Forumにも投稿しておいたのだが(今日みたら、点数がついていた(笑))、備忘録も含め、こちらにも掲載しておく。

  追記です。  使えるねっと内のフォーラムでお伺いを立ててみました。結果、うまく、XOOPS_ROOT_PATH外にXOOPS_TRUST_PATHを設置することができました。  今後の参考になるかも知れないので、一応記録を残しておきます。

<環境>
 サーバー:使えるねっと Linux VPS シルバー(Silver CE5 Plesk)
 CentOS 5
 Linux 2.6.9-023stab046.2-smp
 php 5.1.6-15.el5
 mysql 5.0.22-2.2.el5_1.1

 結果的にいうと、phpの設定で、open_basedirを変更しなければならない、ということでした。つまり、PHPがアクセスできるディレクトリーを、XOOPS_ROOT_PATH以外にも設置してあげなければならないということでした。

 使えるねっとのPHPのデフォルトだと、open_basedirは、/var/www/vhosts/ドメイン/httpdocs:/tmpとなっており、/var/www/vhosts/ドメイン/httpdocs→つまり、XOOPS_ROOT_PATHと、tmpディレクトリだけにしか設定されていないということで、XOOPS_ROOT_PATH配下のディレクトリーとtmpディレクトリー以外にはPHPがアクセスできないということです。

 open_basedirがどのように設定されているかは、phpinfoで調べれば分かるようです。

 では、open_basedirをどのように変更するかというと、使えるねっとの場合は、
/var/www/vhosts/ドメイン/conf/にvhost.confというファイルを作り、(同じディレクトリ内のhttpd.includeは編集してはいけない)

※追記→SSLを用いて、https://~にインストールする場合は、vhost_ssl.confという名前のファイルを作ること。


php_admin_flag safe_mode off
php_admin_value open_basedir "/var/www/vhosts/ドメイン名/httpdocs:/var/www/vhosts/ドメイン名/XOOPS_TRUST_PATH:/tmp"

 と、記述します。さらに、この設定を認識させるために、シェルコマンドで、

/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=ドメイン名 としてから、Apacheを再起動するとopen_basedirの設定は完了です。試しに、phpinfoで確認されると良いでしょう。

 VPS等のroot権限のあるサーバーに初めてXOOPSをインストールする際に、パスの確認の画面が真っ白になってしまう、という方は参考になるかも知れません。

 という訳で、PHPのデフォルトだと、PHPが参照できるディレクトリーには制限があって、それを取り払う必要があるということでした。
 ちなみに、ドメイン、サブドメイン、それぞれに、別々の設定をする必要があり、それぞれのルートディレクトリに、/confディレクトリーがあるので、そこに、vhost.confを設定する必要がある、ということですね。

 初心者には、XOOPS_TRUST_PATHはなかなか分かりにくいと思うので、参考になったのなら、嬉しい限り。また、アドバイスしていただいた方々には、改めて感謝です。

 「使えるねっと」挑戦の続き。

 スタック状態で、XUGJのフォーラムに書き込みしてみる。ちょっと横レスだったのは反省。反応なし。

 結局、XOOPS_TRUST_PATHの設定でCube Legacyのインストールがうまくいかず。そこで、試しに、XOOPS_ROOT_PATHの中にXOOPS_TRUST_PATHを設定してやってみた...すると、うまくいった...。やはり、XOOPS_TRUST_PATHの問題であった。ということは、上のディレクトリにはアクセスできないということか...。

 そこで、いくつか試してみた。パーミッションの変更。chmod777までやってみても、やっぱりだめ。所有権?所有者もFTPアカウントに変更してみた。でもだめ。上のディレクトリ自体の所有者もFTPアカウントに変更したり、パーミッションも変えてみたが、結局は同じ反応。どうしても上のディレクトリにPHPからアクセスはできないようだ。

 困ってしまった。

 XOOPS_TRUST_PATHを、XOOPS_ROOT_PATH内に作成するのは、あまりよくないと思っていた。が、XOOPS_TRUST_PATHでggってみると、回避方法がXHGJに載っていた(汗。ここです。

ドキュメントルート外に置くよりも安全性は低くなりますが、新たにディレクトリを設けてルート内に設置するより無いでしょう
.htaccessファイルを(使えるのであれば)設置して、
deny from all
とだけ記述しておけば安全です。

 ということだったので、それに習って、設定完了。とりあえず動くようにはなりました。

 ここまでの経緯をフォーラムでそのまま書いてしまったので、正直こっぱずかしいです(汗

 書き込みに反応がなかったのも、当然のことだったのからかも知れない...。

 使えるねっとには、フォーラムがあるらしいので、そちらに投稿してみようかと思う。XOOPS経験者もいるようなので。今度はきちんと新しいトピックを立てて投稿してみるつもり。

 「使えるねっと」を使ってみた。
 申し込みは比較的楽。X-server並。コントロールパネルも充実している(Plesk)。ただ、オリジナルというではないので、Plesk慣れるまでは使いづらいかも。

 早速XOOPSをインストールしようとして...あれ、自動インストールができない。
 あ...自動インストールができるのは、共用サーバーだけで、VPSではできないのか...。もう少し大きく書いて欲しかった><;

 自動インストールがあるから借りたくらいだってのに...。これは失敗。

 仕方ないので、手動でインストールすることに。
 全てダウロードし、パーミッションも設定。XOOPS_TRUST_PATHは、FTPからの設定はできないので、Pleskから、フォルダーを作ってパーミッション、所有者変更して、問題なく済み。
 ホダ塾ディストリビューション"HD1.0 for XCL2.1"なので、インストーラもついているので、楽にできるかな~...と思ったら、途中で白紙状態に。URLとパスの設定に行く時に真っ白に。
 こことかを参考にして、メモリを確認。php.iniを見る限りでは、memory_limitは32M設定になっている。特に問題なさげ。後は、XOOPS_TRUST_PATHの設定?
 Pleskでroot権限で、パスを確認したものと同じなので、多分問題ないかと...。

 んー。とりあえず、現在のところ、ここでスタック。さて、どこで相談したものか...。

新しいレンサバに挑戦

| | トラックバック(0)

 クララオンライン以外でVPS導入したいので、他のレンサバを検討。

 今回は、「使えるねっと」に挑戦してみた。

 ここは、フォーラムがそこそこ充実しており、情報が比較的豊富なことと、コントロールパネルが使いやすそうだったので、今回初挑戦。

 申込みは比較的スムーズだった。支払いにアメックスがなかったのがひっかかったが、Paypalが使えたので、Paypal経由でアメックス支払いにした。ので、結果オーライ。

 ここのOSはPlesk。これも初挑戦。画面は見やすいが、まだ慣れない為か、よく分らない。

 XOOPSをインストールしようとするが、コントロールパネルにドメインが現れない...。ヘルプの画面と少々違うところを見ると、バージョンが違うのか...?ここのコントロールパネルは、基本がPleskのようだ。カスタマイズしてるのか...?
 コントロールパネルと、Pleskの画面を両方使わないとならないのは、ちょっと不便かな...。

 コントロールパネル経由でのXOOPSインストールは諦め、FTPでアップロードすることにした。
 現在アップロード中。

 また、追って経過を入力するとしよう...。

XOOPS Cube Legacy 2.1.3

| | トラックバック(0)

 「XOOPS Cube Legacy 2.1.3」テストインストール無事完了。Xreaで問題なく稼動することは確認できたが、やはり細かいバグが残っている感じがする。PHPデバッグをONにしておくと、時々エラーメッセージが表示される。ほとんどSmartyエラーなので、2.0の時とほぼ同じっぽいので、問題はなさげだが、PHPデバックをOFFにしても、時々トップに出てくるエラーが怖い。意味が分らないだけにまだちょっと...。
 あと、参照文献(特にWEB上)が少ないのが気になるところ。2.0JPの方は書籍でほぼ必要なものは取り揃えたので、やはり旧版でも、安定版を使用した方が良い気がしてきた。
 また、Cube Legacyのメニューや管理画面に慣れないという点もある。

 ただ、プロフィールの編集の仕方やパイプの使い方等がかなり便利になっていいる点があるので、ちょっと残念な気もするが...。

 というわけで、しばらくは、2.0JPの方を使ってサイト構築していくことにする。XOOPS Cube Legacyの方は、テストサイトでしばらく環境に慣れていこうと思う。

 前にも触れた、XOOPSには、XOOPSとXOOPS Cube というのがあるらしい。
 X-serverに自動インストール機能がついているのは、「XOOPS 2.0.16a JP」という安定版のシステム。実はこれ、日本人だけでつくったバージョンらしい。これとは別に、本家XOOPSというのがあって、またこれは、これで別らしい。日本には日本のXOOPS Cube日本公式サイトがあって、そこで作られたのが、「XOOPS 2.0.16a JP」。ただし、本家の筋を継いだもの。で、日本独自で開発されたシステムがXOOPS Cube。それを具体化したのが、「XOOPS Cube Legacy 2.1.3」(現在の最新安定バージョン)ということらしい。

 Wikipedia--XOOPS
 Xoops Users Group Japan - 最新のXOOPSを入手する
 Xoops Users Group Japan - XOOPSについて
 あたりに経緯が説明されているので、参照してみては。

 色々実験してみようと、「XOOPS Cube Legacy 2.1.3」の方をインストールしてみようと、試みた。実際には、「ホダ塾ディストリビューション」という、モジュールもパッケージ化されたものをインストールしてみた...が、なかなかうまくいかない。

 最初は、X-serverにインストールしてみたのだが、管理画面が出てこなかったり、モジュールがインストールできなかったりで、断念。
 次に、Xreaにインストール。これも、何度かトライした結果、なんとかインストール完了。色々調べた結果、一つの原因は、どうも、メモリ不足だったらしい。X-serverのデフォルトメモリは15M(?)。「XOOPS Cube Legacy 2.1.3」では、最低16Mは必要とのこと。インストールの際に警告が出る。X-serverのヘルプ通りに、php.iniを最上ディレクトリに新規作成して、16Mの設定をしてみたが、それもうまくいかず。Xoops Users Group Japanあたりをみても、32M程度のメモリ割り当てがないと、モジュールをばんばん動かして、という訳にはいかないらしい。
 ちなみに、Xreaの方では、インストールの際の表示を見ると、割り当て、メモリが90Mになっていたが...本当か...?

 まあ、なんにしろ、Xreaでは、「XOOPS Cube Legacy 2.1.3」も動くらしい。とりあえず、動いてはいる。

 「XOOPS Cube Legacy 2.1.3」だが、なかなか機能的にはすばらしい出来だと思う。まだそれほどは使っていないのだが、軽く触った感じだと、色々な点で関心した。ただ、まだ新しいので、エラー箇所やバグも多そうだ。それが少々心配ではあるが。

 さて、これから、XOOPSを使ったサイトを作るのだが、どちらのバージョンで作るべきかが、ちょっと迷うところである。

 そうそう、それと、一つ触れるのを忘れていたが、「XOOPS Cube Legacy」から、使用文字コードが、EUCから、ユニコードに変更になっている。ユニコード(utf-8)が利用できるようになっている。なので、データベース作成の際には、EUCではなく、utf-8で設定することを忘れないように。

 いよいよ、データベースの項。ちょっと敷居が高くなる。
 OpenPNEに関わらず、ほとんどのCMS(コンテンツマネージメントシステム)は、PHPとMySQLを用いた、(つまりスクリプト言語とデータベースの連携で)システムとなっているので、MySQLは避けて通れない。Perlだけで記述されたものもあるが、セキュリティ面はあまり高くはないようだ。
 ただし、ほとんどのCMSはMySQLのコマンドをあらかじめ用意してくれたり、インストーラーで設定までしてくれるものもあるので、ほとんど知識はなくとも、なんとかなる場合が多い。特に、X-serverやX-rea等、コンパネでSQLの設定ができたりすると、ほとんど問題になることはないのだが。
 今回は、クララオンラインのVPSにインストールした際に、ちょっと問題になった点を中心に挙げる。


4. MyNETS 用データベースの作成
インストーラを利用してインストールする場合は、下記のテーブル作成はインストーラーが行います。

テーブル作成はインストーラーが...というところは、SQLコマンドをあらかじめ用意してくれているので、MySQLを直接自分で編集することはないので、ここは問題なし。

4-1. MySQL 4.1 の場合
新しくデータベースを作成する場合、以下のようなSQLクエリを実行してデータベースを作成します。

CREATE DATABASE `DBNAME` DEFAULT CHARACTER SET utf8 ;
準備したデータベース(例:DBNAME)上で、以下のSQL文を順番に実行してください。

OPENPNE_DIR/setup/sql/MySQL4.1/install/install-mynets1-1-0-create-mysql41.sql
OPENPNE_DIR/setup/sql/MySQL4.1/install/install-mynets1-1-0-insert_data.sql
[実行例]
$ mysql -u username -p --default-character-set=utf8 DBNAME < install-mynets1-0-0-create-mysql41.sql
$ mysql -u username -p --default-character-set=utf8 DBNAME < install-mynets1-0-0-insert_data.sql

 X-serverはMySQLのバージョンが4.0だったので、下記の手順で問題なかったのだが、クララのMySQLは、5.0バージョンであったので、この項目があてはまることになる。実は、この4.0と4.1というのはなかなか壁が高いらしい。特に2バイト文字を扱う場合は特に。バージョン4.1から、サーバー、クライアント、PHP.MySQLと、それぞれの言語を分けることができてしまうのだ。ということは逆にそれぞれの言語が同じじゃないと文字化けをしてしまうという道理になるわけだ。
 ここに気が付いたのは、かなり経ってから。当初、上記手順通りにすすめていって、何度やっても文字化けをするので、困り果ててしまった。
 いくつか、ミソなのが、一つは、SQLコマンドを入力する方法がいくつかあること。SSHからMySQLを呼び出して、コマンドを送信する方法と、PHPMyAdmin等を用いてウェブから送信する方法とがあるのだが、私は、SSHからのコマンドの入力はできないので、PHPMyAdminやWebminを用いて送信したのだ。しかし、ウェブ経由だと、上記コマンドのうち、--default-character-set=utf8の部分を送信できないのである。多分方法はあるのであろうが、分からない。そこで、SQLファイルをアップロードするような形で送信するのだが、その方法では、言語の指定ができないのである。これは困った。何度やっても、文字化けするだけである。

 そして、色々調べた結果、MySQLのデフォルト言語が、どこかの部分で(クライアントかなにか)Latinになっているらしく、utf8で送ろうが、EUCで送ろうが、結局は文字化けしてしまうのだ。
 で、結果から言うと、Webminから、MySQLのコンパネでMySQLのiniファイルを変更することで、MMySQLの言語を全てutf8に統一することができる。統一すると、PHPMyAdminでファイル送信しても、文字化けせずに表示されるようになった...。
 つまり、my.cnfの[mysqld]ディレクティブに、
 [mysqld]
 default-character-set=ujis
 skip-character-set-client-handshake
 を書き込む。下段は、クライアントとの文字コード調整をしないようにするものらしい。上段には、euc-jpを用いる場合は、ujis、UTF-8の場合は、utf-8と指定することになるようだ。


参考サイト
   http://wota.jp/ac/?date=20061011
   

 ここでも、やや一週間はかかっただろうか...。

さて、ここからが山場。

3-2. メールサーバの設定
携帯版を使用しない場合は以下の設定は不要です。

MAIL_SERVER_DOMAIN に届くメールで、以下のアドレスはシステムで利用されます。

項目 新形式 旧形式
新規登録 / ログインURL取得 get@MAIL_SERVER_DOMAIN get@MAIL_SERVER_DOMAIN
プロフィール画像変更 pXXX-YYY@MAIL_SERVER_DOMAIN pXXX@MAIL_SERVER_DOMAIN
コミュニティTOPICのメール投稿 tXXX-YYY@MAIL_SERVER_DOMAIN tXXX@MAIL_SERVER_DOMAIN
コミュニティTOPICのメール作成 eXXX-YYY@MAIL_SERVER_DOMAIN eXXX@MAIL_SERVER_DOMAIN
コミュニティTOPICのメール修正 etXXX-YYY@MAIL_SERVER_DOMAIN etXXX@MAIL_SERVER_DOMAIN
コミュニティ画像のメール投稿 copicXXX-XXX-YYY@MAIL_SERVER_DOMAIN copicXXX-YYY@MAIL_SERVER_DOMAIN
日記メール投稿 bXXX-YYY@MAIL_SERVER_DOMAIN blog@MAIL_SERVER_DOMAIN
日記コメントメール投稿 cXXX-YYY@MAIL_SERVER_DOMAIN cXXX@MAIL_SERVER_DOMAIN
日記画像の修正メール投稿 dpicXXX-XXX-YYY@MAIL_SERVER_DOMAIN cXXX-XXX@MAIL_SERVER_DOMAIN

XXX には数字。
YYY には12バイトの英数字([0-9a-f]{12})。
新形式、旧形式のどちらのアドレスで受け付けるかは config.phpの設定(MAIL_ADDRESS_HASHED)によって切り替えることができます。

新形式はメール投稿の際のFromアドレス偽装へのセキュリティ対策のために導入されたものです。 From偽装対策を(IP制限等により)メールサーバ側で行っている場合には旧形式での運用も問題ありません。

メールサーバの転送設定を利用して、これらのアドレスへのメールが、以下のコマンドにわたるように設定します。

"|/usr/local/bin/php OPENPNE_DIR/bin/mail.php"

最初、X-serverでセットアップを試験していたので、この機能については後回しにしていた。でも、携帯版は是が非でも使いたかったので、色々調べてみた。

この点については、Usagi project サポート掲示板 と、使えるねっと フォーラムをかなり参考にさせてもらった。

この機能を使うには、サーバーに大まかに2つの機能が必要になるらしい

  1. キャッチオール機能→つまり、あるドメイン(もしくはサブドメイン)宛に来るメールを全て受信する機能。ハッシュをONにすると、メールアドレスはランダムに振られるので、これらのメルアドを全て作るのは不可能。なので、キャッチオールの機能は必須。ハッシュにしなかったとしても、宛先メールアドレスは記事番号に依存するので、100や200のメルアドでは足りない計算になる。こんなのつくってられない...。
  2. PHPプログラムへのメール転送機能→携帯から送られたメールを転送機能を利用してPHPコマンドにわたるようにします、という部分。mail.phpというのが、送られてきたメールの宛先と添付ファイルを読み込み、適当な作業を行うというものらしい。

以上の2つの機能がないと、携帯版が使えないことになる。

X-serverには、2の機能はあったのだが、1の機能がなかった。スパムメール対処のためとのこと。確かに、あるドメイン宛のスパムメールを全てPHPコマンドに渡せば、サーバーに負荷がかかることになりかねない。なので、キャッチオール機能を使うなら、サブドメインを作るべきだろう。メインドメインだと、whoisとかから拾ってきたドメイン宛にスパムが送られてくるのは間違いないからだ。

元々、このSNSは将来的にはそれなりの参加人数を見込むつもりだったので、X-serverでは負担しきれないのは分かっており、今回はインストールの試験だったため、当初はこの機能をスキップしていたのだ。

そこで、レンサバを変更。従来、PackageStartという共用プランで利用していたドメインの方を、VPSの契約に切り替える。その際に、レンサバ会社に、PHPプログラムへの転送機能を説明しておいたので、qmailを使った方が良いということになった。クララオンラインの標準VPSサーバーは、Webminとsendmailもしくは、Pleskとqmailの組み合わせらしい。しかし、qmailの設定ファイルである、.qmailを編集するには、Pleskは適切なOSとは言えないということらしく、webminとqmailという組み合わせで依頼する。こちらの状況に応じてカスタマイズしてもらえるというのはまあ、ありがたい。しかし、Webminだと、サブドメインの設定ができないのだ。そうなると、またしても、1の条件は満たしても、2の条件が満たされないことになる。しかし、ぶっちゃけ、メール転送はそれほど重い作業ではないし、別ドメインに作業させてもよい訳で、それは、それで別に考えることにした。

結果、メインのドメインをクララオンラインのVPSに設定。携帯から送られるメールの宛先を別ドメインに設定し、別サーバーから転送することにした。別サーバーの仕様については、キャッチオール機能があるサーバーに絞られた。実は、色々調べていくと、上記1と2の両方を満たすレンサバはあまり多くはないようだ。しかも、あまり評価の見えないサーバーは使いたくない。
OpenPNE関係のフォーラムをみて、比較的利用率の高いサーバーが、さくらとX-reaであった。で、さくらにはキャッチオール機能がないので、消去法的にX-reaをレンタル。
早速別ドメインを設定し、さらにサブドメインを設定して、そのサブドメイン宛に来るメールを全てクララオンラインに設定したドメインのあるメールアドレスに転送することで、1の条件を満たした。

簡単に書くと、こんな感じ。
OpenPNE(Usagi)に携帯からアクセス→メール投稿を選ぶ→アカウント名(この部分は、OpenPNEがランダムで作成)@サブドメイン.ドメイン.orgに画像添付で送る→X-reaのサブドメインに送られたメールは、キャッチオール機能で、ひとまとめに→転送機能を使って、例えば、p1@ドメイン.jpに転送→p1@ドメイン.jpに送られたメールはクララサーバーの方でさらに転送機能を使い、mail.phpコマンドにわたす→結果、画像がアップされるようになった!

この作業になんと1ヶ月を費やした...。X-serverに試験インストールから始まって、メール投稿に必要な機能の把握に、さらにサーバーの選定、申込、設定、さらに試験、インストールの試行錯誤...。ようやく終了。

【注意事項】


  • メールをphpコマンドに送るときは、.qmailを編集するのだが、.qmailを送ることができるパスは、通常FTPで送ることができない、上位にある。通常はSSH等のシェルを使ってコマンドを送るのだが、UNIXコマンドを知らないわたしは、Webminのアップロード機能を使ってファイルを送った。だが、ここにちょっと落とし穴。この機能ではアスキーモードでの転送ができないらしく、キャリッジリターンが変更されるらしい。当初、2行のコマンドを送っていたが、これがうまくいかず、1行にしたら、直ったのは多分、そういうこと。