很多人装igenus都会有发邮件不了,显示 :
“Warning: mail() is not supported in this PHP build in /var/www/igenus/include/send_fun.php on line 528”的错误
先检查/usr/sbin/sendmail权限应该是777(/usr/sbin/sendmail应该是链接到/qmail安装目录/bin/sendmail,此文件权限应该是755),/tmp权限应该是777,如果这样还不行,应该是php环境错误,检查php环境:
在你的apache的DocumentRoot目录下写个php文件(如test.php):
<?
phpinfo();
?>
保存,退出,修改文件权限,然后运行“ http://x.x.x.x/test.php ”
可以看到php的安装支持环境,正常情况下,“standard”环境应该有三项:
Regex Library Bundled library enabled
Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i
而发信出错的php环境只有两项:
Regex Library Bundled library enabled
Dynamic Library Support enabled
“Path to sendmail /usr/sbin/sendmail -t -i ”这一项没有。
另外,发信出错的php环境不能正常识别“sendmail_path ”(在前面PHP Core表里),正常的应该是:
“sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i ”。
sendmail_path 可以在php.ini里面修改,但是改也没有用,还是会出错,唯一途径只能重装php,如果是php4.2.3的php4,装新版本的php4(如php4.3.0等),如果是php4.3以上出现这个问题,要把原来安装的php4文件删除,重装,还是不行的话换不同版本的php4试试(如:原来的是php 4.3.0的则装php 4.3.2RC3,如果是php 4.3.2RC3 则换装php 4.3.0等),重装的时候要停apache
只能多装几次,直到安装正确为止。
php4环境出错问题很普遍,也很讨厌,开始的时候先装mysql+Qmail+apache+php4 并检查php4环境,调试到php4环境正常才往下做,这样会不会容易些????
发现php4环境问题的过程:
我装第一台igenus的时候用的是php 4.2.3,就出现这个问题,后来重装php4.3.2RC2就正常了,但我还不明白出错的原因。
装第二台igenus的时候直接用php4.3.2RC2,可还是出现这个问题,通过对比php4环境才发现问题的原因,不过我直接覆盖重装并不能解决问题。最后我把php4删除,换版本装才搞定。
xmy 回复于:2003-05-22 08:28:03我怀疑安装php没有sendmail支持环境和系统有关。
我的linux默认的邮件系统是postfix,而RH7.3以上用的也不是sendmail,是postfix,这些系统装apache+php的时候,php找不到sendmail环境,就缺少Path to sendmail 支持,会不会是这样呢?如果是的话,装php的时候先弄个“sendmail”上去(比如在装php前先装好qmail),这样php支持环境就会正常?
麻烦大家多试试。
hmkart 回复于:2003-05-22 13:04:55最后一步呀
也被这个问题捆饶.
现在正在重装php中。........
haiwei 回复于:2003-05-26 20:39:27我在redhat 8上装过php.4.3.tar.gz 的包没有配置成功过,后来用系统带的包倒可以了可能跟设置的路径有关系
netloafer 回复于:2003-05-27 11:35:01[quote:df489997c5="xmy"]我怀疑安装php没有sendmail支持环境和系统有关。
我的linux默认的邮件系统是postfix,而RH7.3以上用的也不是sendmail,是postfix,这些系统装apache+php的时候,php找不到sendmail环境,就缺少Path to sendmail 支..........[/quote:df489997c5]
应该不是这个问题,在7.3以上的版本的linux上/usr/lib/sendmail也是一个link,可以通过redhat-switchmail来选择,改变的是这个link文件的指向。
xmy 回复于:2003-05-27 15:42:38偶一开始做就把sendmail、postfix卸载的干干净净,php的sendmail环境支持不正常也不奇怪。出现528错误的朋友可以看看php环境,是不是我的理论。
sunnly 回复于:2003-05-27 16:29:36igenus+qmail 效果较好~~
firebird 回复于:2003-05-28 10:46:45支持,我重新安装了一下,可以了,谢谢。
hss202 回复于:2003-06-12 13:06:34我的也是这样,再装一次PHP就行了
PHP431,也是装回来的版本,没有删,直接装
artxing 回复于:2003-07-23 12:41:01重装php-4.3.0时出现这个错误
/home/software/php-4.3.0/ext/mysql/libmysql/my_lib.c:169: undefined reference to `errno'
ext/mysql/libmysql/my_lib.lo(.text+0x5ef): In function `my_stat':
/home/software/php-4.3.0/ext/mysql/libmysql/my_lib.c:588: undefined reference to `errno'
ext/mysql/libmysql/my_malloc.lo(.text+0xde): In function `my_malloc':
/home/software/php-4.3.0/ext/mysql/libmysql/my_malloc.c:24: undefined reference to `errno'
ext/mysql/libmysql/my_realloc.lo(.text+0xd5): In function `my_realloc':
/home/software/php-4.3.0/ext/mysql/libmysql/my_realloc.c:44: undefined reference to `errno'
ext/mysql/libmysql/my_delete.lo(.text+0x86): In function `my_delete':
/home/software/php-4.3.0/ext/mysql/libmysql/my_delete.c:16: undefined reference to `errno'
ext/mysql/libmysql/my_tempnam.lo(.text+0x89):/home/software/php-4.3.0/ext/mysql/libmysql/my_tempnam.c:108: more undefined references to `errno' follow
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
gadfly 回复于:2003-07-23 19:10:47是redhat 9上吧。
是因为和新的glibc不兼容造成的。
看看这个吧。似乎新的CVS中已经解决了
http://bugs.php.net/bug.php?id=22346
artxing 回复于:2003-07-23 22:01:57嗯.gadfly太厉害了,这些问题都能找到解决方法.我都不知道在那里查
gadfly 回复于:2003-07-23 22:26:49呵呵google是个好东西。
只要关键字对,有的东西基本上能查到的
lightwiter 回复于:2003-09-09 20:46:47我是装了一个4.33rc1才OK的
beck2000 回复于:2003-10-11 19:38:42可接收外部邮件了,发信也没错误,但对方就是收不到,发给自己也不行
我看了php.ini,l
发现sendmail路径是/usr/sbin/sendmeil
就尝试
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
重启httpd后,还是同样情况。如果不重装php可有什么方法?
sunki 回复于:2005-08-09 02:03:00php编译的问题,你的系统里面应该没有安装sendmail,如果没有sendmail,php在编译时默认不编译mail()函数的。
解决方法:
在编译php时加上--with-mail,强制编译mail()函数