ショートストーリー:PHPスクリプトファイルが実行されている場合に、PHP $ _SERVER []変数が使用できない(唯一の)問題を探していますWindowsタスクスケジューラのスケジュールされたイベントから取得します。
私は、両方のサーバーで動作するPHPバージョン7.1のWindows 2008 R2サーバーを2台持っています。私はサーバー#1 'プロダクション'とサーバー#2 '開発'を呼びました。各サーバーには独自のMySQLデータベースがあります。
私が書いたページでは、MySQLデータベースの読み込み/書き込みのために、$ _SERVER ['SERVER_NAME']を使ってスクリプトを実行しているサーバーを特定しています現在のサーバが本番サーバの場合は、本番データベースのIPを使用してください)。
それは私にとって完璧に機能します。ただし、Windowsタスクスケジューラを使用して自動化タスクをスケジュールする場合は例外です。この場合、私はそのデータベースからいくつかの情報を電子メールで送信するための単一のスタンドアロンのPHPスクリプトファイルを作成しています。中デシベル結果からいくつかの情報を電子メールで送信するための
PHPスクリプトファイル:
$ _SERVERでブラウザの結果でページを実行- [「SERVER_NAME」] が定義されている(良い作品)。
- Windowsタスクスケジューラが、これは$ _SERVERになりPHP ページを実行している場合は[「SERVER_NAME」]
を定義されていない、誰もが私が$ _SERVERを作ることができる方法を知っているだろう[]の.phpファイルに利用可能な変数Windows Scheduled Taks(タスクスケジューラはもちろんこのスクリプトの.phpファイルの審判でPHP.exeを指し示しています)によって実行されていますか?または、スクリプトが実行されているサーバーの名前を検出する$ _SERVER []変数以外の方法がありますか?
タスクスケジューラとはほとんどされています。 CLIで実行されているスクリプトでは、HTTPサーバー環境変数は使用できません。ラッパースクリプトなどを使用します。 – mario
これは私がしていることです:私のスケジュールされたタスクは、各タスク用に設計された特定の 'api'サーブレットに対して、サーバーにhttp要求を発行するためにcurlを使用する小さなPHPスクリプトです。 – YvesLeBorg
ニース。ありがとうございました。 – Reno