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"