php shell_exec() durch cygwin
-
03-07-2019 - |
Frage
Ich schrieb ein Skript, kompiliert LaTeX-code über pdftex
.Das Problem ist, dass pdftex
läuft nur auf linux.
Ich bin der Bewältigung dieser Aufgabe mit der Nutzung von shell_exec()
.
Ich habe nicht wirklich die Möglichkeit zum einrichten eines linux-box als web-server.Ich habe meine client-computer, aber es ist hinter einer firewall, die ich nicht kontrollieren.Ich habe die Kontrolle über meine Arbeit-server mit SBS 2003, Windows 2000 virtuelle Maschine läuft apache und php.Zu meinem wissen, können Sie nicht installieren pdftex
in Windows, und wenn Sie könnten, es würde nicht Arbeit mit shell_exec()
.
Ist es Weg, dies zu umgehen mit cygwin?Ich könnte installieren pdftex in cygwin, und konfigurieren Sie dann die php ausführen shell_exec()
Befehle in cygwin.Wenn dies möglich ist, könnte jemand mich in die richtige Richtung?
Außerdem Frage ich mich, ob es eine andere Vorgehensweise.Ich würde nicht dagegen, Kauf-hosting, aber alle shared-hosting-plan ist nicht zur Unterstützung der app.Es hätte zu einem virtuellen oder dedizierten hosting-plan;etwas, was ich nicht leisten können.
Lösung
pdfTeX läuft ganz gut auf Windows, ohne Cygwin zu erfordern. Versuchen Sie MiKTeX .
Andere Tipps
Für alle, die ist Fragen über die Ausführung shell_exec()
durch Cygwin, überprüfen Sie heraus diesen link, um einen Kommentar im PHP-Handbuch:
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'");
Der Schlüssel ist die "--login" - option, die fügt alle erforderlichen gemeinsamen cygwin Binär-und Bibliothek-Pfade zu $PATH.Ohne diese option werden einige die cygwin binaries, dass links zu anderen Bibliotheken ( libraries Wie ImageMagick Binärdateien, die links zu X11 ) wird nicht funktionieren, und Sie können sehen Fehler wie "cygX11-6.dll nicht gefunden, Konnte nicht gestartet werden convert.exe"