Вопрос

Я пытался настроить очень базовую поисковую систему, используя модули WHOOSH в Python, вызванные от PHP. У меня он работал, пока не обновил модули для некоторых дополнительных функций, которые мне нужны. В этот момент, казалось, не странная ошибка. Любое оператор печати после строки «Searcher = Ixtemp.searcher ()» не принимается скриптом PHP.

Сценарий поиска Python вызывается из PHP, и первый результат отображается со следующими командами

exec("python print.py",$output,$ret_code);

echo $output[0];

Сценарий Python -

from whoosh.index import open_dir

ixtemp = open_dir("index")

searcher = ixtemp.searcher()

results = searcher.find("content", u""+"test")

for k in results:
    print k['filename']

Запуск PHP теперь дает следующую ошибку -

Уведомление: undefined Offset: 0 в /opt/lampp/htdocs/new/search.php на линии 17

Сценарий Python работает, когда я бегу сам по себе. После небольшого расследования кажется, что любые печатные заявления перед строкой «Searcher = Ixtemp.searcher ()» могут быть прочитаны PHP, но все после того, как не принимаются сценарием PHP. Я также попробовал функции POPEN () и ProC_OPEN, но у них такая же проблема.

Любые идеи о том, в чем проблема или как я могу работать вокруг этого?

Спасибо

Это было полезно?

Решение 3

Я выбежал идеи и решил Chmod 777 каталог ... и ... он работал. Я не уверен, что это делало, так как данные всегда могут быть отправлены выше функции поиска () в любом случае.

Возможно, при запуске поиска метод пытался изменить защищенные индексные файлы?

Но это само по себе не может быть проблемой, так как она всегда работала от переводчика.

Так что это должно было быть файл PHP. Кажется, это была защита от косвенно Изменение файлов индекса.

Другие советы

Две вещи. Вы уверены, что скрипт завершится? Это можно повесить на вызов поиска (). Во-вторых, я полагаю, что поиск () может быть перенаправлен stdout.

Я предполагаю, что ваш сценарий не завершен, или это время или что-то.

РЕДАКТИРОВАТЬ Похоже, этот код зависит от текущего рабочего каталога. Вы упоминаете ниже, что он работает нормально в интерпретатере - в том же WD, что и веб-сервер?

Вы уверены, что скрипт работает вообще?

Проверьте $ return_code.

Это возможно, это не может найти сценарий Print.py или, возможно, даже Python.exe.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top