CentOS 4.5、Apache 2.0.53、PHP 5.2.4+qmailで空メールのシステムを開発中ですが、Could_not_open_input_fileのエラーが出てPHPのプログラムが起動されません。
システムとしてはから空メール宛先用のユーザー321を追加し、/home/321/の.qmailを
| /usr/local/bin/php -q /usr/local/apache2/htdocs_test/htdocs/mail_action2.php
としてパーミションを600、所有者を321、stickyビットを立てています。ディレクトリー321も321所有で権限は700です。
呼ばれるmail_action2.phpはテスト用に
#!/usr/local/bin/php -q
<?php
$fp = @fopen("/tmp/test.txt", "w");
$size = fwrite($fp, "xxx");
fclose($fp);
?>
としています。所有者は321、権限は604、これもstickyビットを立てました。ディレクトリhtdocsは開発者所有、705の権限です。
これで321に空メールを送ると何も返答がなく、maillog上に
greylist[31334]: IP nnn.nnn.nnn.nnn OK - accepting
...
qmail: 1xx6.8xx4 delivery 1949: deferral: Could_not_open_input_file:_/usr/local/apache2/htdocs_test/htdocs/mail_action2.php_/
qmail: 1xx6.8xx5 status: local 0/10 remote 0/20
qmail: 1xx3.8xx0 starting delivery 1950: msg 1xx9 to local 321@abc.com
qmail: 1xx3.8xx9 status: local 1/10 remote 0/20
qmail: 1xx3.8xx9 delivery 1950: deferral: Could_not_open_input_file:_/usr/local/apache2/htdocs_test/htdocs/mail_action2.php_/
qmail: 1xx3.8xx9 status: local 0/10 remote 0/20
と出ます。(文字数の関係からかなり省略しています。)
mail_action2.phpは実行されず、/tmp/test.txtは作成されません。
ひとつ気になるのがSPAM対策としてgreylistを使っているのですが、多分このせいでCould_not_open_input_fileが2回出ていることです。これが影響しているのかもしれません。
どなたか他の方法でも結構ですからお知恵をお貸しください。
No.2ベストアンサー
- 回答日時:
.qmailの編集はどうやってますか
Windowsで編集してFTPなら改行コードがそのままになってる可能性がありますが
(mail_action2.php_の最後の_が\rかもと思いました)
この回答への補足
WindowsXP上で NoEditorで改行コードをLFにし、NextFTPでアップロードしています。今、NextFTPの設定を見たら「ホスト改行コード」の指定が「自動」になっていたのでLFにしてやって見ます。
補足日時:2009/07/22 12:06大当たりでした。
NoEditor と NextFTP だけで安心していたのですが、saintandreさんの回答の通りダブルクォートをつけてやってみたら、No_such_file_or_directory/にエラー内容が変わったので、ひょっとしてと思って
cat -v /home/321/.qmail
を実行してみたら
^M
が鎮座していました。
dos2unix
で変換して権限等を設定しなおしたらすんなり通りました。
ありがとうございました。
感謝感激です。
(ただgreylistの関係からか3回?実行されます。)
No.3
- 回答日時:
なんとも言えませんが、sudoなどと連携してみてはどうでしょう?
No.1
- 回答日時:
コマンドをダブルクォートで囲んでみるのはどうでしょうか。
私はPostfixでしたが似たような状況でこれで解決しました。| "/usr/local/bin/php -q /usr/local/apache2/htdocs_test/htdocs/mail_action2.php"
結局は改行コードの問題だったのですが、LFだと信じ込んでいました。
言われたようにダブルクォートで囲んで見たら、エラー内容が
No_such_file_or_directory/
になったので、やっと気が付いた次第です。
この回答が無かったらずっと信じ込んだままでした。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アップロードファイルを表示す...
-
PHPの構文で間違えが分からない
-
php エラー
-
PHPSpreadsheetを使って関数を...
-
PHPで画像の渡しが上手く行きま...
-
phpでcookieがうまく保存されない
-
PHP MySQLに画像を直接保存
-
PHP8を使うと、大量のWarningが...
-
PHPのセッション有効期限について
-
ページング phpの書き方がわか...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
phpのheader("Location:#pos")...
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
-
phpに関わる所での、form actio...
-
ゆゆにゃ。
-
【初心者】XAMPPのapacheの(恐...
-
プログラミング言語で、使える...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Red Hat ES 3にPHP5.2.5インス...
-
PHP5.2.9インストール時に、 Or...
-
コンパイルエラー
-
linux-C言語(gcc)でPostgresql
-
Call to undefined function: m...
-
fedora php pdoでdb2接続方法
-
icu ビルドエラー
-
LinuxのPHPのパス
-
Apache OpenSSL PHP でエラー
-
phpのインストールが上手く行き...
-
cygwinのgccによるコンパイルう...
-
パスがうまく通らないので、パ...
-
「DNSサーバーを自動的に取得す...
-
パスワード設定していないユー...
-
同一のホスト名で何か問題があ...
-
DNSサーバを設定したのですがns...
-
エラーメールで"too many hops"...
-
リモートデスクトップ接続でパ...
-
”Tortoise SVN” と ”Subversio...
-
Mailの送信済みメールボックス...
おすすめ情報