我写了一个小PHP脚本:
<?php
$phpPath = shell_exec("which php");
print "$phpPath'n";
$uid = posix_getuid();
$userinfo = posix_getpwuid($uid);
print_r($userinfo );
print "'n";
$to = "my_user_name@my_company_mail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "do-not-reply@akamai.com";
$headers = "From:" . $from;
$res = mail($to,$subject,$message,$headers);
print_r(error_get_last());
if($res){
echo "Mail Sent.'n";
}else{
echo "Mail was'nt Sent'n";
}
?>
让我发疯的是,当我从命令行执行此脚本时,它可以正常工作:
/usr/bin/php
Array
(
[name] => daemon
[passwd] => x
[uid] => 1
[gid] => 1
[gecos] => daemon
[dir] => /usr/sbin
[shell] => /bin/sh
)
Mail Sent.
但是当我从远程浏览器执行它时,我得到了:
/usr/bin/php
Array
(
[name] => daemon
[passwd] => x
[uid] => 1
[gid] => 1
[gecos] => daemon
[dir] => /usr/sbin
[shell] => /bin/sh
)
Mail was'nt Sent
知道吗?
命令行 PHP
和 PHP 不使用同一个 php.ini,请检查它们之间是否有区别。
更多关于php的信息.ini在这里
关于SO的相关问题在这里