hallo Kerstin,
$command = escapeshellarg($xfcpath.$docbookpara.$docbook.$docbookxmlfile.$docbookxsl);
exec($command);
Wow.
Die Variable $command hat dann diese Form:
'../xfc/xslutil -v ../docbookhtml/manual-1-1.html ../docbook/manual-1-1.xml ../docbookxslt/mydocbookhtml.xsl'
Nö, hat sie nicht (scheint mir so, es sei denn, $docbookpara hätte den Wert "-v"). Du klebst sie aus fünf Bestandteilen (Variablen) zusammen, gibst hier aber nur vier an ;-p
Und ich habe erstmal Mühe, herauszufinden, ob der resultierende String überhaupt in dieser Form an exec() übergeben werden darf.
Die Frage ist nun, warum das unter Linux GAR NICHT geht!?
Das tut es durchaus.
Wär mal interessant zu erfahren was
Vielleicht hilft es dir, im PHP-Handbuch nachzulesen, was exec() tut.
Apache 2.2.2 mit PHP 5.1.4. -> eigentlich XAMPP 1.5.3a, da sind die vorher aufgelisteten Komponenten mit drin.
Äks. Warum man XAMPP unter Windows installieren möchte, kann ich zur Not noch verstehen. Aber Apache 2.2.2 kann mit dem bisher letzten offiziellen PHP 5.1.4 unter Windows nichts anfangen. Wenn die Apache-Friends sowas in ihr Paket integriert haben, so müssen sie irgendeinen Patch für PHP verwendet haben, oder sie haben eben gleich das noch nicht freigegebene PHP 5.2 eingesetzt - siehe übrigens dieser Thread.
Das ganze läuft auf einem Debian-System.
Debian ist die konservativste aller Linux-Distributionen. Wenn du dort "apt-get install apache" eingibst, wird dir Apache 1.3.34 eingerichtet, und wenn du "apt-get install apache2" fährst, bekommst du einen Apache 2.0.54. Nix da mit Apache 2.2.x, den mußt du dir dann schon selber kompilieren.
Ich weiß zwar, daß die Apache-Friends ihr XAMPP auch für Linux anbieten, aber ich werde mich hüten, das zu nutzen, weil ich immer erst nachsehen müßte, was sie wie kompiliert haben. _Alle_ Bestandteile gibt es für _jede_ Linux-Distribution auch so zu freien Download. Wenn man sie sich selber zusammenbaut, weiß man wenigstens, was sie tun.
Grüße aus Berlin
Christoph S.