Windows Server 2008 R2 IIS 7 mit PHP - Batch ausführen

M

mw197

Gast
[gelöst] IIS 7 mit PHP - Batch ausführen

Hallo Leute,

ich habe einen Windows Server 2008 R2 und darauf einen IIS 7 installiert. Auf diesem Webserver läuft ein PHP-Script mit PHP 5.6.8 und generiert mehrere INI-Dateien, die anschließend auf einen anderen Server kopiert werden müssen.

Ich möchte nun per UNC die Datei auf die Freigabe kopieren, allerdings bekomme ich es nicht hin.
Ich habe bereit mit file_put_contents() versucht die Datei auf den Server zu schieben. Beispiele, die nicht klappen:
Code:
<?php
file_put_contents('T:\test.txt', 'test');
?>

Code:
<?php
file_put_contents('unc://benutzer:passwort@server/test.txt', 'test');
?>

Leider klappt das alles nicht.
Jetzt war meine Idee, eine Batch-Datei einfach anzustoßen, der dann die Dateien einfach rüber kopiert. In das wwwroot-Verzeichnis kann ich die Dateien ja vorerst speichern und dann per Batch dahin kopieren. Leider kriege ich per PHP die Batch nicht angestoßen.
Meine Versuche:
Code:
<?php
exec('cmd /c "C:\copy.bat"');
?>

Code:
<?php
system('cmd /c "C:\copy.bat"');
?>

Auch habe ich die copy.bat schon mal mit in wwwroot gelegt, klappt alles nicht.

Hat da jemand eine Idee für mich? :)

Danke im Voraus!
Ergänzung ()

Ok, ich habe es geschafft, nach stundenlangen Tests.
Im IIS kann man Anwendungspools erstellen. Ich habe dort mal einen erstellt namens
TEST.
bild1.PNG

Wenn man das erstellt hat, muss die Identität, die standardmäßig auf "ApplicationPoolIdentity" steht, angepasst werden. Das sorgt dafür, dass dort ein Benutzer hinterlegt wird, der nachher Schreibrechte auf den Netzlaufwerk-Ordner hat.
In meinem Fall habe ich den einfach mal "admin" genannt (sowohl auf dem Server gibt es den und auf dem Zielserver mit identischem PW). Um die Identität zu ändern, mit einem Rechtsklick auf den Eintrag => "Erweiterte Einstellungen..." und dann wie folgt auf dem Bild zu sehen ändern.
bild2.PNG

Nun kann man der Website diesen Pool zuweisen. Ich habe das Testweise mit der "Default Web Site" gemacht. Dies geht wie folgt. Ihr macht auf den Eintrag einen Rechtsklick und wählt "Website verwalten" => "Erweiterte Einstellungen...". Folgendes Fenster öffnet sich. Wählt dort den entsprechenden Pool
bild3.PNG

Nach dem Neustart der Site funktioniert nun die Speicherung der Datei direkt mit PHP (ohne Batch-Datei). Dazu verwende ich folgenden Code (nur wichtige Zeile):

Code:
<?php
//mein Code
file_put_contents('\\\\192.168.1.91\\test\\hallo.txt', 'Mein Inhalt');

Damit kann ich nun lesen und schreiben in dem Verzeichnis. Mein Script macht natürlich deutlich mehr aber das reicht halt um zu zeigen, wie man es grundlegend angehen muss. Habe mich da ehrlich gesagt fast tot gesucht :D
Aber jetzt habe ich es geschafft.

Danke dennoch! :)
 
Zuletzt bearbeitet:
Zurück
Oben