こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPのCLI(コマンドライン)について

PHPのCLI版について教えていただきたいことがあります。
まず、前提条件として、
OS:Redhat Linux 9.0
PHP:4.4.1
WEB:Apache2.0
MAIL:qmail
となっています。

確認事項としてphpのパスを確かめるために、SSHなどのコマンドラインから、
(A)のようにパスを指定して実行した場合、正常に処理できます。

(A) [/ ]# /usr/local/bin/php
<?php
phpinfo();
?>

実行→phpinfoの内容が表示される


次に、qmailの転送機能を利用し、受信したメールを自動的に前述の
test.phpに渡すとmaillogに以下のようにログが残っています。

delivery 1488: deferral: /bin/sh:
 /var/www/sample/test.php:
 /usr/local/bin/php :
 bad interpreter:
 No such file or directory

test.phpのパスは正しく設定されており、
[/ ]# /usr/local/bin/php /var/www/sample/test.php
とした場合、正しく読み込みます。

また、test.phpの1行目には
#!/usr/local/bin/php
と記述してあり、もう一台のサーバー(Redhat Linux 2.1AS)では
正しく動いております。


実行できない原因を調べる手段として、
・この設定を確認
・このコマンドを実行
など、まず何をチェックすればいいのか
教えていただけると助かります。

以上、よろしくお願いします。

投稿日時 - 2006-02-07 12:12:36

QNo.1949647

すぐに回答ほしいです

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

> 次に、qmailの転送機能を利用し、受信したメールを自動的に前述のtest.phpに渡す
は具体的にどう行っているのでしょう?

通常(というか私なら)
.qmailに
|/var/www/sample/test.php
/Maildir/

と記述しますが、その場合ちゃんと転送先のユーザーに、PHPの実行権があるでしょうか?
内容を拝見するに、rootでしか確認してないように思えます。
test.phpのパーミッションを確認してみてください。
また、Windowsで作成したプログラムをとLinuxにFTP何かで送ると、改行コードがの違いにより、こういったエラーが起こる場合があります。
改行コードがちゃんとLFになっているか確認してみてください。

投稿日時 - 2006-02-07 13:26:44

お礼

kusukusu様のおかげで解決いたしました。

原因ですが、まず、アップロードしたtest.phpの
バージョンが1世代前のバージョンで、処理が正しく
行われていませんでした。

sampleアカウントのユーザーが.qmail-sampleを作成しただけで、実際のアカウントが作成されていませんでした。そのためPHPを実行できていなかったのだと思います。

パーミッションは755になっていたので、こちらは問題
ないと思います。

以上、アドバイスありがとうございました。

投稿日時 - 2006-02-07 16:59:04

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問