• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

[原]igenus发信528错误的原因和解决方法。

发布: 2007-5-25 23:49 | 作者: 未知 | 来源: ChinaUnix.net | 查看: 22次 | 进入软件测试论坛讨论

领测软件测试网
很多人装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:36
igenus+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:00
php编译的问题,你的系统里面应该没有安装sendmail,如果没有sendmail,php在编译时默认不编译mail()函数的。 

解决方法: 
在编译php时加上--with-mail,强制编译mail()函数

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网