PHP imap_open () ошибка в командной строке - PullRequest
2 голосов
/ 28 февраля 2011

Я пытаюсь запустить страницу 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 ]

1 голос
/ 28 февраля 2011

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

Мне пришлось сделать то же самое для mysql, добавив extension = mysql.so

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

0 голосов
/ 28 февраля 2011

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

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

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

wget http://localhost/path_to_script.php
...