php shell_exec () через cygwin
-
03-07-2019 - |
Вопрос
Я написал скрипт, который компилирует код LaTeX через pdftex
. Проблема в том, что pdftex
работает только в Linux.
Я выполняю эту задачу с использованием shell_exec ()
.
У меня нет возможности настроить linux box в качестве веб-сервера. У меня есть клиентский компьютер, но он находится за брандмауэром, который я не контролирую. У меня есть контроль над моим рабочим сервером, который работает под управлением SBS 2003 с виртуальной машиной Windows 2000, на которой работают apache и php. Насколько мне известно, вы не можете установить pdftex
в Windows, и если бы вы могли, он не работал бы с shell_exec ()
.
Есть ли способ обойти это с Cygwin? Я мог бы установить pdftex в cygwin, а затем настроить php для запуска команд shell_exec ()
внутри cygwin. Если это возможно, кто-нибудь может указать мне правильное направление?
Кроме того, мне интересно, есть ли другой курс действий. Я не возражаю против покупки хостинга, но любой план виртуального хостинга не будет поддерживать приложение. Это должен быть виртуальный или выделенный хостинг-план; что-то, что я не могу себе позволить.
Решение
pdfTeX прекрасно работает в Windows, не требуя Cygwin. Попробуйте MiKTeX .
Другие советы
Для всех, кому интересно узнать о запуске shell_exec ()
через Cygwin, перейдите по этой ссылке на комментарий в руководстве по PHP:
http://us.php.net/manual /en/function.shell-exec.php#68647 р>
$result = shell_exec("C:\cygwin\bin\bash.exe --login -c '/cygdrive/c/cygwin/bin/convert.exe --version'");
Ключ " - логин " опция, которая добавляет все необходимые общие двоичные и библиотечные пути cygwin до $ PATH. Без этой опции некоторые из бинарные файлы cygwin, которые ссылаются на другие библиотеки (например, ImageMagick бинарные файлы, которые ссылаются на X11) не будут работать, и вы можете увидеть ошибки как " cygX11-6.dll не найден, не удалось запустить convert.exe "