2009-07-08 17 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

+0

投稿が長すぎますが、配列内のすべてのimap関数(71)が表示されます。 (imap_openを含む) – Tjkoopa

+0

そして、あなたはimap_open()の呼び出しがimap_open()の呼び出しの直前で動作しないスクリプトファイルにこのコードスニペットを入れます。私。あなたはvar_dump出力のimap_open()を参照してください。また、未定義の関数imap_open()はすべて同時に出力されますか? – VolkerK

答えて

3

echo get_cfg_var('cfg_file_path'); 

を使用すると、PHPのこのインスタンスで使用されているphp.iniを見つけることができます。おそらくphp apache-module(またはphp-cgi?)とphp cli(あなたのcronjobで使用されている)のバージョンが異なる.iniファイルを使用していることがわかります。
phpをどのようにインストールしたか(そしてこのバージョンのphpをどのようにコンパイルしたかによっても)、apiモジュールは、あなたのcliバージョンにはない追加の.iniファイルを解析することがあります。これはあなたのウェブサーバに

<?php phpinfo(); ?> 

を実行する場合があるかどうかを確認し、エントリ「解析された追加の.iniファイル」を探します。
いずれの場合も、cliバージョンで使用される設定には、拡張子= php_imap ...ディレクティブが含まれている必要があります。

+0

私はあなたの最後のコメントの後にcrontabをチェックしました。彼女が実行していた.shスクリプトは間違ったPHPインスタンスを指定しました - 私はそれを修正して動作します。答えにスポット - ありがとう。 – Tjkoopa

関連する問題