2009-07-08 36 views
1

我們的一個電子郵件解析腳本使用IMAP功能有一個問題:已啓用IMAP,但函數未定義?

Fatal error: Call to undefined function 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 Web根)使用imap_open與完全相同的細節,它似乎工作。

PHP更新之前它的設置方式 - 是否有任何理由停止工作?我知道我可能將電子郵件腳本移動到網絡服務器文件目錄,但我也想知道爲什麼它會停止工作的方式以前 - 它可能是PHP的配置方式?

+0

什麼是var_dump(get_extension_funcs('imap')); ? – VolkerK 2009-07-08 09:11:47

+0

帖子太長,但它顯示數組中的所有imap函數(71)。 (包括imap_open) – Tjkoopa 2009-07-08 09:41:45

回答

3

隨着

echo get_cfg_var('cfg_file_path'); 

你可以找出哪些php.ini中已經使用了PHP的這個實例。您可能會看到php apache-module(或者是php-cgi?)和php cli版本(由您的cronjob使用)正在使用不同的.ini文件。
根據你如何安裝php(以及如何編譯這個版本的php),apache模塊也可能解析你的cli版本沒有的額外的.ini文件。要檢查是否是這個在你的服務器上運行

<?php phpinfo(); ?> 

的情況下,查找條目「解析的附加.ini文件」。
無論如何,您必須注意cli版本使用的配置包含extension = php_imap ...指令。

相關問題