Homebrew로 여러 버전의 PHP 관리
php
7.4와 8.0을 모두 설치하려면 brew install
명령을 사용하십시오.먼저 다음과 같이 7.4 버전을 설치합니다.
% brew install [email protected]
Homebrew를 사용하여 패키지의 특정 버전을 지정하는 구문은
brew install <packageName>@<version>
입니다. 이 경우 패키지 이름은 php
이고 버전은 7.4
입니다(이 글을 쓰는 시점에서 기본값은 7.4.32
). @<version>
부분을 완전히 생략하면 Homebrew는 사용 가능한 최신 버전(이 글을 쓰는 시점에서 8.1
)을 설치합니다.php
의 버전 7.4가 올바르게 설치되었는지 확인하려면:% /opt/homebrew/opt/[email protected]/bin/php -v
PHP 7.4.32 (cli) (built: Sep 29 2022 10:45:51) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.32, Copyright (c), by Zend Technologies
이상적으로는 명령줄에서
/opt/homebrew/opt/[email protected]/bin/php
를 단순히 php
로 참조하고 싶습니다. 여기에는 다른 단계가 필요합니다.% brew link --force --overwrite [email protected]
Linking /opt/homebrew/Cellar/[email protected]/7.4.32... 812 symlinks created.
If you need to have this software first in your PATH instead consider running:
echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/[email protected]/sbin:$PATH"' >> ~/.zshrc
brew link
를 실행한 결과 이제 php
경로에서 /opt/homebrew/bin/php
의 연결된 버전을 찾을 수 있습니다.% ls -l /opt/homebrew/bin/php
lrwxr-xr-x 1 myuser admin 32 15 Oct 18:34 /opt/homebrew/bin/php -> ../Cellar/[email protected]/7.4.32/bin/php
% /opt/homebrew/bin/php -v
PHP 7.4.32 (cli) (built: Sep 29 2022 10:45:51) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.32, Copyright (c), by Zend Technologies
실행 중
brew link
의 출력에는 ~/.zshrc
파일의 끝에 두 줄을 추가하여 php
를 참조할 때 /opt/homebrew/opt/[email protected]/bin
폴더에서 먼저 찾아야 한다고 터미널에 알려주는 제안이 있습니다. 이 작업을 수행할 수 있지만 brew link
다른 버전의 php
로 전환할 때마다 해당 줄을 편집해야 합니다. 대신 약간 수정된 접근 방식을 사용합니다.% echo 'export PATH="/opt/homebrew/sbin:/opt/homebrew/bin:$PATH"' >> ~/.zshrc
% source ~/.zshrc
이제 터미널은
php
를 참조할 때마다 먼저 /opt/homebrew/bin
에서 php
의 연결된 버전을 찾습니다.% which php
/opt/homebrew/bin/php
% php -v
PHP 7.4.32 (cli) (built: Sep 29 2022 10:45:51) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.32, Copyright (c), by Zend Technologies
이제
php
버전 7.4가 설치되었으므로 php
버전 8.0도 설치하여 계속할 수 있습니다.% brew install [email protected]
이제 우리는 brew에게
php
의 새 버전에 연결하도록 지시합니다.% brew link --force --overwrite [email protected]
Unlinking /opt/homebrew/Cellar/[email protected]/7.4.32... 328 symlinks removed.
Linking /opt/homebrew/Cellar/[email protected]/8.0.24... 232 symlinks created.
이 명령의 출력에서 명령
export PATH...
이 포함된 두 개의 명령을 실행하라는 제안을 다시 볼 수 있지만 위에서 수행한 단계로 인해 이 작업이 필요하지 않습니다.% which php
/opt/homebrew/bin/php
% php -v
PHP 8.0.24 (cli) (built: Sep 30 2022 08:39:20) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.24, Copyright (c) Zend Technologies
with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans
with Zend OPcache v8.0.24, Copyright (c), by Zend Technologies
이제
brew link --force --overwrite [email protected]
또는 brew link --force --overwrite [email protected]
와 같이 서로 다시 연결하여 7.4 버전에서 8.0 버전으로 전환할 수 있습니다.연결할 수 있는 버전이 확실하지 않은 경우 다음 명령을 시도하십시오.
% brew ls --versions | grep '^php[ @]'
[email protected] 7.4.32
[email protected] 8.0.24
마지막으로, 아래는 제가
phpswitch
라고 부르는 완전한 기능을 갖춘 스크립트의 소스 코드입니다. 이 스크립트는 executable으로 설정한 다음 phpswitch 8.0
또는 phpswitch 7.4
와 같은 터미널에서 실행할 수 있습니다.#!/bin/bash
if [ $# -ne 1 ]; then
echo 1>&2 "USAGE: $0 <phpVersion>"
exit 2
fi
INSTALLED_VERSIONS=`find /opt/homebrew/opt | grep 'php@' | sed 's/\/opt\/homebrew\/opt\/php@//'`
if [[ ! -f /opt/homebrew/opt/php@${1}/bin/php ]]; then
echo 1>&2 "/opt/homebrew/opt/php@${1}/bin/php was not found"
printf 'valid options:\n%s\n' "${INSTALLED_VERSIONS[*]}"
exit 2
fi
for VERSION in ${INSTALLED_VERSIONS[*]}; do
brew unlink php@$VERSION > /dev/null 2>&1
brew services stop php@$VERSION > /dev/null 2>&1
done
brew link --force --overwrite php@$1 > /dev/null 2>&1
brew services start php@$1 > /dev/null 2>&1
Reference
이 문제에 관하여(Homebrew로 여러 버전의 PHP 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/micmath/manage-multiple-versions-of-php-with-homebrew-4dba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)