Ошибка PHP imap open() в командной строке


Я пытаюсь запустить PHP-страницу из командной строки, которая использует imap_open() для открытия почтового ящика электронной почты. Скрипт отлично работает в браузере.

PHP-скрипт:

$imap_stream    = imap_open($host,$username,$pass);

Команда:

php -c /etc/php.ini /home/public_html/inc/mailGet.php

Ошибка:

PHP Fatal error:  Call to undefined function imap_open() in /home/public_html/inc/mailGet.php on line 13

Я включил правильный php.ini с -c /etc/php.ini в команду, чтобы убедиться, что он использует тот же файл.ini, что и браузер. (это путь к файлу .ini, как указано на моей странице phpinfo();).

Я запускаю Apache2(Centos5.5) с PHP 5.2.6. Может ли кто-нибудь пожалуйста, посоветуйте?

Спасибо,

Крис.

Author: Kit, 2011-02-28

2 answers

Я обнаружил, что мне иногда нужно определять расширение в моем php.ini при использовании CLI-PHP. Попробуйте добавить extension=imap.so в ваш php.ini и по-прежнему включайте его в свою команду (-c/etc/php.ini)

Я должен был сделать то же самое для mysql, добавив extension=mysql.so

Несмотря на то, что расширение будет отображаться в вашем phpinfo(); оно не всегда загружается в PHP CLI.

 1
Author: wilsonpage, 2011-02-28 17:50:40

Функции IMAP являются расширением. Согласно руководству , PHP должен быть скомпилирован с --with-imap[=DIR], похоже, в вашем случае это не так.

Может быть, в вашей системе есть несколько экземпляров командной строки php?

В качестве последней капли, если PHP CLI не может быть оснащен необходимыми функциями, я думаю, вы могли бы сделать http-запрос в своей crontab:

wget http://localhost/path_to_script.php
 0
Author: Pekka 웃, 2011-02-28 17:36:55