간단한 이야기 : PHP 스크립트 파일을 실행중인 경우에만 PHP $ _SERVER [] 변수를 사용할 수 없습니다. Windows 작업 스케줄러 예약 이벤트에서 가져옵니다.
두 서버에서 실행중인 PHP 버전 7.1의 Windows 2008 R2 서버가 두 대 있습니다. 저는 서버 # 1 '생산'과 서버 # 2 '개발'을 호출했습니다. 각 서버에는 자체 MySQL 데이터베이스가 있습니다.
MySQL 데이터베이스 읽기/쓰기를 위해 작성한 페이지에서 $ _SERVER [ 'SERVER_NAME']을 (를) 사용하여 스크립트를 실행중인 서버를 식별했습니다 (페이지가 개발 환경에서 실행중인 경우). 서버의 경우 개발 서버에서 MySQL 데이터베이스의 IP 주소를 사용하고 현재 서버가 프로덕션 서버 인 경우 프로덕션 데이터베이스 IP를 사용합니다.
나를 위해 완벽하게 작동합니다. Windows 작업 스케줄러를 사용하여 자동화 된 작업을 예약하는 경우는 예외입니다. 이 경우에는 데이터베이스에서 가져온 정보가 포함 된 전자 메일을 보내려는 단일 독립 실행 형 PHP 스크립트 파일을 만듭니다.
PHP 스크립트 파일에서 DB 결과에서 몇 가지 정보가 포함 된 이메일을 보내 : $ _SERVER의 브라우저 결과에서 페이지를 실행
- [ 'SERVER_NAME은'] 정의되는 는 (선행).
- Windows 작업 스케줄러는이 $ _SERVER 초래 PHP 페이지를 실행하는 경우 [ 'SERVER_NAME은']을 정의하지
사람 내가 .PHP 파일에 $ _SERVER [] 변수를 제공 할 수있는 방법을 알고시겠습니까 Windows Scheduled Taks (여기서 작업 스케줄러는 물론이 스크립트의 .php 파일에 대한 심판이있는 PHP.exe를 가리키고 있음)에 의해 실행되고 있습니까? 또는 스크립트가 실행되는 서버의 이름을 검색하는 $ _SERVER [] 변수 외에 다른 방법이 있습니까?
. CLI에서 실행되는 스크립트에는 사용할 수있는 HTTP 서버 환경 변수가 없습니다. 래퍼 스크립트 등을 사용하십시오. – mario
이것은 내가하는 일이다. 나의 스케줄 된 태스크는 curl을 사용하여 각 태스크를 위해 설계된 특정'api' 서블릿에 대해 서버에 http 요청을 보내는 작은 PHP 스크립트이다. – YvesLeBorg
니스. 고맙습니다. – Reno