2011-02-12 3 views
0

저는 Windows System % PATH % 변수에 대해 다소 혼란스러워합니다. 다음 스크립트를 php-cli 및 apache에서 제공하는 웹 페이지로 실행했을 때 경로 변수에 대해 다른 결과가 나타납니다.Apache Webserver를 통해 PHP-CLI 및 PHP의 시스템 PATH 변수 내용이 다릅니 까? 어떻게 고치는 지?

// different output for php-cli and php executed by apache webserver 
<?php 
system('echo %PATH%'); 
?> 

어디에서 아파치 웹 서버에서 사용중인 PATH 변수를 변경할 수 있습니까?

내 시스템 :

  • Win7에 64 비트
  • 젠드 서버 커뮤니티 에디션 5.0.4 (아파치가 아닌 IIS로)

편집 :는 죄송합니다, 나는 한 당신에게주는 문제를 이해하는 예제 :

system('mysqldump .....') 명령 또는 somet을 실행하고 싶었습니다. 그런 식의 힌지. 중요한 것은 MySQL bin 경로가 시스템의 경로에 있지만 webbrowser를 통해 스크립트를 실행해도 시스템의 경로에 MySQL bin 경로가 포함되지 않기 때문에 명령 줄에서 스크립트를 실행하면됩니다.

웹 시스템의 경로는 다음과 같습니다

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Programme\Sysinternals;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Zend\ZendServer\bin 

비트 원래 시스템의 경로가 훨씬 더 길다. 내 질문은 지금, 어디에 시스템의 경로가 제한됩니다 또는 어디에 웹 실행 PHP 스크립트에 대한 시스템의 경로 설정을 찾을 수 있습니까?

답변

1

C:\Path\To\Zend\ZendServer\ZendEnablerConf.xml을 참조하십시오.

경로 변수가 정의되어 있습니다.

1

echo getenv('PATH') 
+0

죄송합니다, 이건 내 문제를 해결하지 않지만 쉘 스크립트는 시스템 경로를 덤프하는 것이 더 좋습니다. – Uli

0

환경 변수는 Windows에서 당 프로세스이며, 다음 대신 사용해보십시오; 상위 프로세스에서 상위 프로세스로부터 상속 된 (일반적으로) 최상위 프로세스는 시스템 전체 경로와 사용자 별 경로를 더한 PATH으로 설정합니다. 따라서 사용자 계정으로 CLI 버전의 PHP를 실행하는 경우 경로에는 사용자 정의 경로가 포함되지만 서비스 계정으로 실행되는 Apache 프로세스에는 시스템 전체 경로 만 표시됩니다.

시스템 속성 (제어판 \ 시스템 및 유지 관리 \ 시스템), 고급 환경 변수에서 시스템 전체 경로를 설정할 수 있습니다. 또는 Apache에서 환경 변수를 설정할 수 있다고 생각합니다. mod_envSetEnv 지시문을 사용합니다.

관련 문제