2014-10-15 2 views
-3

내 OS X의 로컬 개발 사이트에서 Mavericks는 exec ("which php") 명령을 사용합니다. 이 exec() - Command의 결과는 "/ usr/bin/php"이며 실제로 잘못되었습니다. "opt/local/php5/bin/php"를 반환해야합니다. "opt/local/php5/bin/php"는 터미널 세션의 "which php"명령의 결과입니다. 이 문제를 어떻게 해결할 수 있습니까?PHP exec ("which php")가 잘못된 결과를 반환합니다.

+0

[스크립트 내에서 현재 PHP 실행 파일을 구할 수 있습니까?] (http://stackoverflow.com/questions/2372624/get-current-php-executable-from-within-script) – andy

+0

어떤 "php"가 사용됩니까? 너의 아파치에 의해? – Anas

답변

0

잘못된 질문을하면 잘못된 결과가 나옵니다. ;)

which 명령은 실행 파일의 전체 경로를 반환합니다. which 명령을 찾습니다 그 위치는 $PATH 환경 변수에 정의되어, 그것은 다음과 같은 :

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/android-sdk/sdk/platform-tools:/opt/android-sdk/sdk/tools 

이들은 콜론으로 구분 된 일반 명령 경로입니다.

분명히 컴퓨터에 PHP가 여러 개 설치되어 있습니다. 패킷 관리자가 설치 한 기본 경로에 대한 경로입니다.

/opt에있는 하나는 웹 서버 사용자가 작성한 /opt/local/php5/bin을 추가 한 경우에만 발견되며 /usr/bin이어야합니다.

이제 웹 서버의 $PATH을 어떻게 설정합니까? 서버 (Apache, Nginx, ...)와 배포판에 따라 다른 가능성이 있습니다. 데비안과 유사한 시스템에서 아파치를 사용하는 경우 보통 /etc/apache2/envvars입니다.

아직 정의 된 PATH이 없다면, 단순히 다음 줄을 추가 :

export PATH="/opt/local/php5/bin:$PATH" 

그런 다음 웹 서버를 다시 시작 (처음에 PATH$ 표시를하지 않습니다.).

관련 문제