Ошибка 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. Может ли кто-нибудь пожалуйста, посоветуйте?
Спасибо,
Крис.
2 answers
Я обнаружил, что мне иногда нужно определять расширение в моем php.ini при использовании CLI-PHP. Попробуйте добавить extension=imap.so в ваш php.ini и по-прежнему включайте его в свою команду (-c/etc/php.ini)
Я должен был сделать то же самое для mysql, добавив extension=mysql.so
Несмотря на то, что расширение будет отображаться в вашем phpinfo(); оно не всегда загружается в PHP CLI.
Функции IMAP являются расширением. Согласно руководству , PHP должен быть скомпилирован с --with-imap[=DIR]
, похоже, в вашем случае это не так.
Может быть, в вашей системе есть несколько экземпляров командной строки php
?
В качестве последней капли, если PHP CLI не может быть оснащен необходимыми функциями, я думаю, вы могли бы сделать http-запрос в своей crontab:
wget http://localhost/path_to_script.php