1

我们的电子邮件解析脚本之一在使用 imap 函数时出现问题:

致命错误:调用未定义的函数 imap_open()

IMAP 肯定是启用的,它是用 php 编译的,并显示在 phpinfo() 中,并且在执行时get_loaded_extensions()extension_loaded("imap")是否有任何原因可能无法访问这些函数?

IMAP 版本是 2007e,PHP 是 5.3。

编辑 1:这是在 mac 服务器(OSX 10.5.7)上运行的,使用 imap 函数的脚本在 /var/***/ 我尝试在 /Library/WebServer/Document (网络根目录)中使用imap_open 具有完全相同的细节,它似乎工作。

它的设置方式在 PHP 更新之前工作 - 有什么理由让它停止工作吗?我知道我可以将电子邮件脚本移动到网络服务器文档目录中,但我也想知道为什么它会像以前一样停止工作 - 可能是配置 php 的方式吗?

4

1 回答 1

3

echo get_cfg_var('cfg_file_path');

你可以找出这个 php 实例使用了哪个 php.ini。您可能会看到 php apache-module(或者是 php-cgi?)和 php cli 版本(由您的 cronjob 使用)使用不同的 .ini 文件。
根据您安装 php 的方式(以及此版本的 php 的编译方式),apache 模块可能还会解析您的 cli 版本没有的其他 .ini 文件。要检查是否是这种情况,请运行

<?php phpinfo(); ?>

在您的网络服务器中查找“已解析的其他 .ini 文件”条目。
在任何情况下,您都必须注意 cli 版本使用的配置包含 extension=php_imap... 指令。

于 2009-07-08T12:10:04.530 回答