im пытается разобрать pdf в текст через PHP
и XPDF
(pdftotext.exe). На моем локальном хосте все работает хорошо, но когда я пытаюсь переместить все на сервер, я попадаю в беду.
Прежде всего, я проверил некоторые настройки на сервере, а safe_mode отключен , exec не отключен, а разрешения – rwxrwxrwx
.
Тогда я пытаюсь это
$command = "\\\\149.223.22.11\\cae\\04_Knowledge-base\\tools\\pdftotext.exe -enc UTF-8 ". $fileName . " \\\\149.223.22.11\\cae\\04_Knowledge-base\\output.txt"; $result = exec($command,$output,$args); echo shell_exec($command);
который не работает. Когда я смотрю в $result, $output,
пуст, но $ args возвращает 1, который соответствует неправильной функции этим кодом окна системных кодов ошибок
Вся команда выглядит как \\149.223.22.11\cae\04_Knowledge-base\tools\pdftotext.exe -enc UTF-8 \\149.223.22.11\cae\04_Knowledge-base\testpdf\04_egerland_final_paper.pdf \\149.223.22.11\cae\04_Knowledge-base\output.txt
и когда он правильно вводится в командную строку, его работа.
Так что я немного из идей. Кто-нибудь подскажет?
edit 20160201 – aditional try Итак, я сделал aditional тесты, и когда я пытаюсь запустить аналогичную команду с exec из localhost (целевой .exe-файл, входной и выходной файл находится в одном месте, только im с использованием localhost not server), он работает. Im теперь проверяет различия в настройках сервера. Таким образом, может возникнуть проблема, что localhosts Server Api – это обработчик Apache 2.0, а сервером является CGI / FASTCGI ?
Так что это была ошибка на моей стороне. Я плохо проверил разрешения IIS и забыл назначить пользователя виртуальному каталогу, к которому я хочу получить доступ. Поэтому мой единственный совет и больше мудрости – удвоить (возможно, тройную) проверку, если у вас есть все разрешения, установленные правильно.