Captcha plugin導入

12月 12, 2011 in WebSite, 趣味・興味 by ezofurpine

実際には2011年11月27日にやったこと、とその続き。
Captcha技術の含まれるWordPress pluginを導入してみたらXREAの仕様絡みでエラー吐いてちょっと苦労したよという話。
ド素人が理屈分からず試してるだけなので、似たような状況でも真似しない方が良いような気がします。

plugin何かいれよーと思って探したところ、Fast Secure Contact Formというメールフォームのpluginが目についた。
細かく設定できるメールフォームが簡単に設置できるらしい。インストール。
これがCaptchaを使っているというので、そう言えば前々からコメントスパム除けにCaptcha導入したかったんだ、と思い出しSI Captchaというpluginも導入。

Fast Secure Contact Form設定画面でphpがセーフモードで動作しているのでメール送信とファイルのアップロードが上手くいかないかもとの警告。またCaptchaの生成もphpが云々。こちらはphpを使わないにチェックを入れた。
設定後使ってみると、セーフモードの警告にも関わらずちゃんと動作した。
よきかな、と思い、ダッシュボードからプラグインの新規追加をクリックするとダッシュボードの上下それぞれに

Warning: session_start() [function.session-start]: open(/tmp/sess_a(略), O_RDWR) failed: Permission denied (13) in /virtual/(略)/si-contact-form.php on line 1443
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /virtual/(略)/si-contact-form.php:1443) in /virtual/(略)/si-contact-form.php on line 1443

および

Warning: Unknown: open(/tmp/sess_a(略), O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

とかエラーログが表示されている(固有の値かもしれないところは適当に略しました)。
なんじゃこりゃ。グーグル先生に聞いてみた。

参考(になったけど直接解決にはならなかった)
http://hudor.net/?p=483
http://faintdusk.com/bftsky/archives/29
http://blog.ipweb.org/archives/54
http://wordpress.server-domain.info/xrea/si_captcha_donot_work.html

色々見た感触としては、

  • 原因はXREAのPHPがセーフモードで動いてること。(CGIとして動作させれば良いものの、今度は権限のほうで引っかかる?)
  • /tmpフォルダを作ってsession.save_pathを指定すれば良いらしい
  • メディアファイルのアップロード画面でも同じエラーログが出るらしい→確かに出た

ということなので、tmpフォルダを置いて、試してみた。

  • php.iniを置く→効果無し
  • .htaccessで→効果無し
  • wordpressのconfig.phpにini_set( ‘session.save_path’ , ‘/virtual/ユーザー名/temp’);を追記

3つめのみ、プラグインの新規追加およびメディアファイルアップロード画面でエラーが出なくなった。

が、解決かと思いきや、今度はそれ以外の全ての画面で同様のエラー発生。ただしメッセージの(/tmp)がこちらで指定したパスに変化している。
tmpフォルダの権限を緩めてみたが駄目。
更にぐぐるも、解決策…というか症例が見当たらず。そもそも上に示したものもFast Secure Contact Formの話ではなくて、これ意外と誰も使ってないプラグインなのかな…目についたもの選んだだけなので人気かどうか検討してないんだけど;

で、色々見ている間に、作ったtmpフォルダの中にエラーメッセージ中にある「sess_a(略)」ファイルがいつの間にか生成していることに気付く(後の試行により、エラーを吐いたときに生成していることを確認)
「もしかしてフォルダまでは辿り着けたけどファイルにアクセスできなかったのでは」と思い、生成されたファイルの権限を緩めてみた。
→解決
全てのページでエラーが出なくなった。

その後更にいくつか条件を検討してみたところ、およそ次のような感触

  • ・config.php内のsession.save_path指定は必要。(デフォルトのパスは少なくともxreaでは使えない)
  • ・↑で指定したフォルダの属性はxx7、中のファイルsess_a(略)はxx6以上の権限が必要。
  • ・他はどうでもいい

しかし「その他」に書き込みや実行の権限与えて大丈夫なの?というのが素人ながらちょっと心配。
せめて場所変えておこうということで、ルートじゃない適当な場所にフォルダ作ってsession.save_pathをそこへ指定してみたところ、同じファイルは生成したんだけど属性が変更できない。
なんで?と思ったら所有者がユーザーじゃなくてapacheになってる。
所有者を変更する方法がよく分からんかったので、ファイルを一旦ローカルにダウンロードして、apache所有のファイルを削除、アップロードし直すことによりユーザー所有の同一ファイルとなり、属性変更で今度こそ解決となりました。

結局理屈はよく分からんままですが、素人としては使えりゃ取り敢えず良いか、ということでここまで。
つかれた…
詳しそうな人に聞いた方が早かったかもしれんと思いつつ、どこまで一般的な問題なのか分からないので悩ましいところ。

今後似たようなことが起きたときのためにメモしておきます。

(12月12日)

案の定再発だよー。メモしておいて良かった(・ワ・)
FastSecureFormとCaptchaプラグインの更新が来ていたので自動更新してみたら類似の症状再発。

Warning: session_start() [function.session-start]: open(/virtual/(略)/sess_(略), O_RDWR) failed: Permission denied (13) in /virtual/(略)/si-contact-form.php on line 1674
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /virtual/(略)/si-contact-form.php:1674) in /virtual/(略)/si-contact-form.php on line 1674

属性変更するんだよな→あれ?適用されてない→そうだった所有者apacheだから変更できないんだった。
ので、一旦DLしてUL…しようとするも、DLできない。Oh…そもそも前にDLできたのが不思議な気もするけど。

さてどうしたものかと試していたら、DLはできないけど削除はできることが判明。

よく分からんけど最終的に、phpをcgiとして動作させる.htaccessをsi-contact-form.phpのところへ置いて、該当のsess_(略)ファイル(所有者apacheで属性変更できない)を削除してダッシュボード表示すると何故か所有者がuserになって再生成していたのでFFFTPで属性変更して解決。.htaccessファイルが効果あったのかは不明。なぜ解決したのかも実際のところはよく分からず。

apacheって何?レベルの者が手を出すべきではないのかもと思いつつ、致命的なところではなさそうなので動いてればいいやという感じです。
理屈分かってる人が見たら失笑ものかもしれん。失笑しつつも優しく仕組みや理屈を教えてくれる方歓迎(ぉ

しかしこれ今後updateのたびに毎回やるのかい…うーん、やっぱちゃんとした解決法を学んだ方が良いような気がする。

(2012年1月8日)

問題そのものの「ちゃんとした解決法」ではないような気もするけど、「所有者をapacheからuserに変更する」手順についてはちゃんとした方法がありました。

WordPress が自動生成するファイルの所有者・パーミッションと、その変更方法

XREAの管理ツールにちゃんとそれ用のがあったとは…orz ぐぐったときには、他の鯖ではそういうの見たんですが、XREAには無いのかしら…としょんぼりしていたのに。
ここから更にリンク先のサポート掲示板によると、apacheで作られちゃったファイルは自動的かつ定期的にuser(707)に変更してくれているらしいんですが、どうもそうは思えないなぁ…

そして、「モジュール版PHPから作成されたファイルは、ユーザー名:apache となります。 これはモジュール版という仕様上、避けられません。 」とのことなので、根本的な解決策はないのかも。まぁ致命的な問題ということはないので良いんですけども。

個人的なblog作ったよー

11月 27, 2011 in WebSite, 環境改善/Lifehack, 趣味・興味 by ezofurpine

最近、ふと思ったこととか休日にやったこととかを書き残しておきたいと思いつつ…普段はだいたい思ったことはtwitterに書いてるんですが、140文字に収まらないことも多くて、かといって分割して長々書くのもな…と思っていたので、やっぱblog的なものが要るなーと。
でも基本はやはりtwitterで呟いてる感じなので、一言で言えないようなことはblog経由でping飛ばして呟くというイメージ。

そうでなくても前々から、茶太りん関連じゃないことを書く場所もいるよなとは思っていて(一応キノコ狩り農園の方は個人的なものにはしない意識。なるべく)
昔は「個人的なことはmixi日記に書けばいいや。日記というほどでもない単発のものはtwitterで」と思っていたこともありましたが、最近mixiとかほぼ見てないし、色々アレで改めて使おうという気も起きないし、そもそも加入者しか見られない日記というのがあまり好みではない感も。公開範囲指定とかほとんどしたことないし。
例えば同人音楽で、「これ凄くいいなー!紹介したいなー。でも茶太りんまるで関係ないしなー。mixiとか書いてもなー」という時に活躍する予定。

見た目上ドメインは違いますが、実はもげもげしてるサイトと同鯖で、サブドメイン同士、兄弟関係にあたるような。親は不使用。
「確かサブドメイン3つくらいまでは貰えたはずー」と思って、折角だから個人用サイト一つ作っちゃおうと思った次第です。一応WordPressそのものをhomeにはせずに、blogとして置いている形ですが、blog以外のページを作る予定は今のところ無し。

折角だからと言えば、「MySQLデータベースも5個くらい取れたような」というのもあったわけですが、1つのデータベースで複数のWordPressを管理する方法もあることに気付くなど。でもまぁ全然関係の無いものだから分けた方が良いかなと思い、素直に別に取得。
が、xreaの仕様でデータベース名にクセがあって、ちょっと難儀したりもしました。
http://twitter.com/#!/ezofurpine/status/139392403969810432
http://twitter.com/#!/ezofurpine/status/139393067479334912
結局本質的には解決してないけど。

思えばキノコ狩り農園の方のblogも移転の突貫工事でデフォルトのままずるずるとここまで来ていて、いい加減なんとかしたいなぁという気もするわけですが、なかなかまとまった時間が取れず。
今回このblog作る際には初めてのこと(といってもごく基本的なことばかり)もいくつか試しました。
テーマ設定、プラグイン導入(画像認証、メールフォーム、共有ボタン)。取り敢えず、これはやっとかなきゃ損だろと前々から思っていたものを主に。
個人blogの方が気楽なので、こっちで色々試してみて、キノコ狩り農園の方に適用するっていう利用もできるなーと前向きに考えてます。後から思いついたことだけど。
まだまだ試したいことあるので、暇を見つけては試して、このblogにメモしていくつもりです。
っても年が明けるまでは割とオ㍗ルスケジュールなのでアレですが(‘A`)

あ、応援バナーとか置きたい。3カラムのテーマ探してきたので右か左にほぼバナー表示用列みたいなの作るつもりです。
今適用してるテーマ「Custom Comunity」っていうのが、その名の通りカスタマイズ性がとても高くて、把握するまでちょっと苦労しましたが、とっても良い感じ。
WordPressのテーマって見た目だけじゃなくて機能(できること)にも直接関係するので、その辺とても大事だと思いました。使わない機能もある(例えばスライドショーとか)けど、欲張りなので大体全部できるものから選んで削っていきたい。

ゆくゆくは、キノコ狩り農園の方に適用して、blogだけじゃなくてサイト全体を絡めた改革を…と思いつつ、いつになるやら。

どうでも良いけど、書くつもりのことカテゴリ作ってたらえらい数になってしまった。
毎日同じ繰り返しのようだけど、こんな人間でも生きているだけで色んな方向に関係が発生するものなんだなぁとふと。
まぁ使うかどうか分からんカテゴリもあるわけですが(ぁ
あとタグとの使い分けがたまに混乱する。まぁあまりあらかじめ考えるものではないのかもしれません。悪い癖だ。

初めて作ったwebsiteは殆ど日記サイトみたいなもんだったけど、結局日記に戻ってきたなぁというのが我が事ながら少し興味深く思ったり。

と最初はこんなところで。

誰か読む人がいるか分からないけど、よろしくです。
読まれなくても書くよ。