Mac 10.9 컴퓨터에 PHP 버전 5.4가 설치되어 있고 5.6으로 업그레이드하고 싶습니다.
소스파일을 다운받아 실행 해 ./configure
보니 컴파일과 설치는 성공한 것 같았는데, 이전 버전의 PHP가 .make
make install
/usr/local/bin
/usr/bin
을 실행할 때 php
해당 /usr/bin
위치는 /usr/bin
새 버전을 사용하고 싶기 때문에 사용됩니다./usr/local/bin
$PATH
/usr/bin
이전 버전의 PHP를 의 버전으로 교체 해야 합니까 /usr/local/bin
? 아니면 완전히 제거해야 합니까 /usr/bin
?
perl
5.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
.