• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mailfilter を使ってエラー)

mailfilterを使ってエラー | 問題解決方法

このQ&Aのポイント
  • mailfilterを使用してPHPを起動させる方法についてエラーが発生しました。エラーメールによれば、指定したファイルが存在しないためにエラーが発生しています。具体的な解決策はわからないため、エラーの回避方法についてアドバイスを求めています。
  • 参考にしたページでは、ccコマンドを使用してmailfilterに記述することを紹介しています。しかし、実際にメールを送るとエラーメールが返ってきてしまい、エラーの原因と解決方法がわかりません。
  • エラーの内容によると、指定されたファイルが存在しないためにエラーが発生しているようです。具体的なファイルの場所や命名方法に問題があるのか、それとも別の原因があるのかを確認したいと考えています。エラーを回避するための正しい方法について、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.4

エラー表示にあったUsageを見るとそのPHPってCGI版なんですね。 >Error in argument 1, char 3: option not found _ からは、引数の1つめの3文字目に問題があるみたいですが、 >#!/usr/local/bin/php -q のようにしているようですから-qの後ろに問題があるようです。 このPHPのスクリプトファイルですが、Windows上で変更してサーバにFTPで転送とかですかね? もしそうなら改行コードはWindowsのCR+LFのままですか? UNIX系OSだと改行コードがLFですから、Windowsの改行コードCR+LFのままだとCRがあるために正常に動作しない事があるのですがそれは大丈夫ですか?

futatu
質問者

お礼

ありがとうございます Leanさんのおっしゃるとおりで出来ました!!! いつも携帯用のスクリプト中心でしたので SJISで記述 改行CR+LFで行っておりました^^; EUCに変換、改行をLFで成功する事が出来ました 不勉強なところが多く恥ずかしい限りです 丁寧にご指導頂き 本当にありがとうございました。

その他の回答 (3)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

>このFOLDERより下の他のPHPはブラウザ上からは実行できているため問題ないと思っております。 と書かれていますが、これは結局モジュールにしてもCGIにしてもそのPHPスクリプトは(モジュールもしくはCGI版として)PHPが組み込まれたWEBサーバから実行されている事は理解出来ていますか? >cc "| /home/USERNAME/FOLDER/hoge.php" は、メールサーバから呼ばれたmaildrop(mailfilterだから多分そうだと思うけど)から実行されています。 決して、WEBサーバから実行される事はありません。 maildropはただ、/home/USERNAME/FOLDER/hoge.php を実行しているだけ、つまりシェルプロンプトから/home/USERNAME/FOLDER/hoge.phpと入力して実行したのと同じです(まあ、maildropから実行されるときは標準入力からメールの内容が渡されますが) TELNETやSSHでそのレンタルサーバにログイン出来るのならブラウザ上からでななくて、実際にhoge.phpを実行してみたら如何でしょうか? たぶん質問にかかれた同じようなエラーになると思います。 >#!/usr/local/bin/php -q これがCLI版(もしかしたらCGI版なのかな?)のPHPなのでは? それを先頭行にいれればいいだけでは?

futatu
質問者

お礼

Leanさんありがとうございます No2とNo3と何をおっしゃっているのかが 読み返して少しではありますが理解できたように思います それで #!/usr/local/bin/php -q を加えて実行してみました (拡張子は私の誤認で、phpのままで行っております) 結果は次のエラーメールが帰ってきました -----中略----- <hoge@USERNAME.co.jp>: Command died with status 1: "/usr/bin/maildrop". Command output: Error in argument 1, char 3: option not found _ Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>] php <file> [args...] -a Run interactively -C Do not chdir to the script's directory -c <path>|<file> Look for php.ini file in this directory -n No php.ini file will be used -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -f <file> Parse <file>. Implies `-q' -h This help -i PHP information -l Syntax check only (lint) -m Show compiled in modules -q Quiet-mode. Suppress HTTP Header output. -s Display colour syntax highlighted source. -v Version number -w Display source with stripped comments and whitespace. -z <file> Load Zend extension <file>. ご指摘通りで No such file or directory がなくなりました これはhoge.phpは起動できなかったということでしょうか? それともこのオプション(-f等)をどこかに記入せよってことなのでしょうか?

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

>cc "| /home/USERNAME/FOLDER/hoge.php" PHPのスクリプトを実行しようとしているみたいですが、 >output:/home/USERNAME/FOLDER/hoge.php:line 1:?php_: No such file or directory をエラーメッセージからするとhoge.phpはPHPスクリプトだけが書かれたファイルのようですね。 例えば、WEBサーバでPHPスクリプトが実行出来るのは、WEBサーバにモジュールとして組み込まれているPHPがPHPスクリプトを解釈して実行するから実行出来るのであって、PHPのモジュールが組み込まれていないWEBサーバではPHPのスクリプトは実行出来ません。 これと同様に、今回の場合もおそらく実行しようとしているPHPのスクリプトファイルを解釈して実行してくれるPHPが存在していない、存在していても実行しようとしているPHPのスクリプトをPHPで解釈してくれるように指定していないから実行出来ずにエラーになっています。 PHPにはコマンドラインからPHPのスクリプトファイルを実行するためのCLI版PHPがありますので、それをインストールしてそのCLI版PHPを使用してPHPのスクリプトファイルを実行しようとしない限りはご希望の事は無理です。

futatu
質問者

お礼

早速のご回答ありがとうございます。 このFOLDERより下の他のPHPはブラウザ上からは実行できているため問題ないと思っております。 PHPはApache のモジュールで動作してはいませんが自動的にCGIとして動作するようになっているようです。 私の知識が曖昧なのですが、こういう時は#!/usr/local/bin/php -q を入れて 拡張子をcgiに変えて動作させた方が宜しいのでしょうか? 今不安になりブラウザ上で hoge.php を実行したところ スクリプトでのエラーはでませんでした。 (メールが読み込まれていない旨のメッセージは出ます) >CLI版PHP レンタルサーバーで行っている為 別途インストールは出来ない状態です。 説明不足が多々あるようでご迷惑をおかけ致します。 宜しくお願い致します。

  • mtfoggy
  • ベストアンサー率14% (37/255)
回答No.1

>あとが全く理解できておりません ?php_: No such file or directory 翻訳すると、こんなファイルやディレクトリはありません。 というエラーです。 これくらいの英語は理解できるようになりましょう。

futatu
質問者

お礼

ご指摘ありがとうございます。 英語的には理解しておりました^^; この絶対パスの所には間違いなくファイル・ディレクトリーは存在しています その為、その英語は無視しておりました。 ファイルの絶対パスはPHPの realpath(hoge.php); で確認しているので間違いはないと確信しております。

関連するQ&A