php shell_exec () через cygwin - PullRequest
       21

php shell_exec () через cygwin

2 голосов
/ 05 января 2009

Я написал скрипт, который компилирует код 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 ]

3 голосов
/ 13 сентября 2009

Для тех, кто , интересуется, как запустить 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'");

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

2 голосов
/ 05 января 2009

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

...