/usr/bin에 있는 PHP 시스템 바이너리를 자체 컴파일된 바이너리로 바꿔야 합니까? [폐쇄]

/usr/bin에 있는 PHP 시스템 바이너리를 자체 컴파일된 바이너리로 바꿔야 합니까? [폐쇄]

Mac 10.9 컴퓨터에 PHP 버전 5.4가 설치되어 있고 5.6으로 업그레이드하고 싶습니다.

소스파일을 다운받아 실행 해 ./configure보니 컴파일과 설치는 성공한 것 같았는데, 이전 버전의 PHP가 .makemake install/usr/local/bin/usr/bin

을 실행할 때 php해당 /usr/bin위치는 /usr/bin새 버전을 사용하고 싶기 때문에 사용됩니다./usr/local/bin$PATH

/usr/bin이전 버전의 PHP를 의 버전으로 교체 해야 합니까 /usr/local/bin? 아니면 완전히 제거해야 합니까 /usr/bin?

perl5.6 설치는 및 의 새 버전 pecl과 기타 여러 도우미 바이너리( php-config및 포함 phpize) 와 같은 몇 가지 다른 항목도 설치하기 때문에 이는 약간 까다롭습니다. 그 중 일부(마지막 두 개)는 이미 /usr/bin폴더 에 있지만 존재 perl하지 않습니다 pecl. 새로운 것을 모두 옮겨야 하나요 /usr/bin?

마지막으로, 새 제품은 설치할 수 /usr/local/bin있는데 이전 제품은 설치할 수 없는 이유는 무엇입니까? 차이점이 중요합니까? PHP 팀이 어떤 이유에서든 이를 옮기기로 결정했나요? 아니면 /usr/bin내 시스템과 함께 제공되고 다운로드한 업데이트가 설치되었기 때문 입니까 /usr/local/bin?

위치는 php.ini이것에 달려 있습니까?

답변1

일반적으로 /usr계층 구조는 운영 체제 공급업체/사이트 관리자가 제공하는 항목과 /usr/local로컬로 설치된 항목(예: 네트워크, 로컬 파일 시스템 /usr과 비교하여 여러 시스템에서 공유하는 NFS 마운트 )에 사용됩니다. /usr/local이것이 /usr/local시스템 패키지가 손상되지 않도록 일반적으로 구성 스크립트가 기본적으로 설치되는 이유입니다. PATH이것이 있어야 하는 이유이기도 하다./usr/local/{bin,sbin} 앞으로 /usr/{bin,sbin}.

이를 변경하려면 다음을 실행하기만 하면 됩니다(잘 작동하는 빌드 시스템의 경우).

./configure --prefix=/path/to/install/to

이전 PHP 버전의 출처에 따라 많은 것이 달라집니다. 덮어쓰는 것만으로는 이전 버전의 일부 파일이 남을 수 있으므로 좋은 생각이 아닙니다(이것이 패키지 관리자를 사용하는 것이 좋은 생각TM인 이유입니다 ) . 따라서 이전 버전을 제거할 수 있는 깔끔한 방법이 없다면 /usr/local약간 더 나을 수도 있습니다. 또 다른 옵션은 (잘못) 별도의 계층 구조를 사용하는 /opt것 입니다 /opt/php5.6.

관련 정보