Short Story: Ich bin auf der Suche nach einer Arbeit um PHP $ _SERVER [] Variablen nicht verfügbar (nur) in einem Fall, in dem eine PHP-Skriptdatei ausgeführt wird von einem geplanten Windows Taskplaner-Ereignis.
Ich habe zwei Windows 2008 R2 Server mit PHP Version 7.1 auf beiden Servern ausgeführt. Ich habe Server # 1 'Produktion' und Server # 2 'Entwicklung' genannt. Jeder Server hat seine eigene MySQL-Datenbank.
Auf den Seiten, die ich geschrieben habe, habe ich für MySQL db lesen/schreiben, $ _SERVER ['SERVER_NAME'] verwendet, um zu identifizieren, welcher Server das Skript ausführt (wenn die Seite auf der Entwicklung ausgeführt wird) Server verwenden Sie die IP-Adresse der MySQL-Datenbank auf dem Entwicklungsserver Wenn der aktuelle Server der Produktionsserver ist, verwenden Sie die Produktionsdatenbank IP).
Das funktioniert perfekt für mich. Die Ausnahme ist, wenn ich den Windows Taskplaner zur Planung einer automatisierten Aufgabe verwende. In diesem Fall erstelle ich eine einzelne eigenständige PHP-Skriptdatei, um eine E-Mail mit einigen Informationen aus dieser Datenbank zu senden.
- Ausführen der Seite in einem Browser Ergebnisse in $ _SERVER [ 'SERVER_NAME'] definiert ist (funktioniert gut):
PHP-Script-Datei eine E-Mail mit einigen Informationen aus den db Ergebnissen in senden.
- Wenn Windows Task Scheduler läuft die PHP Seite dies in $ _SERVER Ergebnisse [ 'SERVER_NAME'] wird nicht
Würde jemand, ich könnte die $ _SERVER [] Variablen zur Verfügung zu einer Php-Datei machen wird von einem Windows Geplanten Taks ausgeführt (wobei der Task-Scheduler natürlich auf die PHP.exe mit einem Referee zu dieser .php-Datei verweist)? Oder gibt es einen anderen Weg als die Variable $ _SERVER [], um den Namen des Servers zu ermitteln, auf dem das Skript ausgeführt wird?
, die wenig mit dem Taskplaner zu tun hat. Skripts, die in der Befehlszeilenschnittstelle ausgeführt werden, verfügen auch über keine verfügbaren HTTP-Serverumgebungsvariablen. Verwenden Sie ein Wrapper-Skript oder etwas. – mario
Das ist, was ich tue: meine geplanten Aufgaben sind kleine PHP-Skripte, die curl verwenden, um HTTP-Anfrage an den Server, für bestimmte 'api'-Servlets für jede Aufgabe. – YvesLeBorg
Schön. Vielen Dank. – Reno