php shell_exec() через cygwin

Я написал скрипт, который компилирует код 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. Если это возможно, кто-нибудь может указать мне правильное направление?

Также мне интересно, есть ли другой курс действий. Я не возражаю против покупки хостинга, но любой план совместного хостинга не будет поддерживать приложение. Это должен быть виртуальный или выделенный план хостинга; что-то, что я не могу себе позволить

2 ответа

Решение

pdfTeX прекрасно работает на Windows, не требуя Cygwin. Попробуйте MiKTeX.

Для тех, кто интересуется бегом shell_exec() через Cygwin проверьте эту ссылку на комментарий в руководстве по PHP:

http://us.php.net/manual/en/function.shell-exec.php

 $result = shell_exec("C:\cygwin\bin\bash.exe --login  -c '/cygdrive/c/cygwin/bin/convert.exe --version'");

Ключом является опция "--login", которая добавляет все необходимые общие двоичные и библиотечные пути cygwin к $PATH. Без этой опции некоторые двоичные файлы cygwin, которые ссылаются на другие библиотеки (например, двоичные файлы ImageMagick, которые ссылаются на X11), не будут работать, и вы можете увидеть ошибки типа "cygX11-6.dll не найден, не удалось запустить convert.exe"

Другие вопросы по тегам