私はスタックオーバーフローや他の多くの Web サイトでアイデアを探し回っていますが、これまでのところ何もうまくいかず、もっと直接的な助けが必要です。
私は専用の Ubuntu サーバー (9.04 jaunty) を持っており、そこで apache2 を使用していくつかの PHP Web サイトを実行しています。私の問題は、mail() 関数が機能しなくなったことです。しばらく前から、ほとんどのメールに PEAR Mail Queue を使用しているため、いつ mail() が機能しなくなったのか正確にはわかりませんが、OpenCart のセットアップなどにはまだ必要ですが、mail()何をしても return false のままです。この単純なコードでさえ機能しません:
<?php
mail('mail@example.com','test','test');
?>
それで、私はすべてチェックアウトするphp.iniのSendmail-settingsを見てきました。これをコマンドラインで実行すると、正常に動作し、メールが送信されます。
# sendmail
mail@example.com
test message
php自体に問題があるのではないかと思い、以下のコマンドを実行してみます。
# php -r "mail('mail@example.com','test','test');"
また、問題なくメールを送信します。それで、それは何でしょうか?おそらく www-data がスクリプトの実行に何らかの問題を抱えているのではないかと考え始めました。このスクリプトを実行することさえできないため、これについてはまだわかりません。
<?php
echo exec('whoami');
?>
また、false を返します。visudoコマンドを実行し、念のため次の行を追加しました。
www-data ALL=(ALL) ALL
そして、ファイルのユーザーとグループの所有者をroot:rootからwww-data:www-dataに変更しましたが、まだ何もありません!
他に何を試すことができますか?何かあるに違いない!誰でも私を助けることができますか?