로컬 환경은 회사 프로젝트 환경과 일치하는 7.1이지만 laravel6.0 업그레이드에는 7.2가 필요합니다. (그룹 내 일부 친구의 로컬 환경은 7.2인데 코드를 푸시한 후 프로젝트 개발 환경을 사용할 수 없습니다.) 자동으로 배포됨), 생각해 보니 PHP 버전 전환을 용이하게 하는 무언가를 로컬에서 만들어야 합니다.
방법 1: php-version 설치(valet을 사용하지 않는 경우 가능함)
1단계. Brew를 사용하여 여러 PHP 버전 설치
brew install php71 // 原本有就不需要 brew install php72
2단계. Brew 명령을 찾아 php-version 설치 실패하면 수동으로 설치하세요
[qian@bogon ~ ]$ mkdir $HOME/.local [qian@bogon ~ ]$ cd $HOME/.local [qian@bogon .local ]$ git clone https://github.com/wilmoore/php-version.git [qian@bogon .local ]$ source $HOME/.local/php-version/php-version.sh //测试 查看当前php版本 [qian@bogon .local ]$ php-version * 7.1.18 7.2.22
이제 환경 변수를 추가하세요
[qian@bogon ~ ]$ echo "source $HOME/.local/php-version/php-version.sh" >> ~/.zshrc [qian@bogon ~ ]$ source ~/.zshrc
php 버전을 전환하세요
php-version 7.1
or
php-version 7.2
명령줄을 사용하여 이런 식으로 php -v를 입력하세요. 이미 전환된 버전입니다.
방법 2. 발렛 사용 php@version 사용 (발렛을 사용하여 환경을 설정하는 친구들은 여기를 읽어주세요)
사실 제가 문서를 잘 읽지 않아서 - -, 기본만 배웠거든요 Valet 사용 - - 문서를 주의 깊게 읽으면 반나절을 절약할 수 있습니다. - -
Valet을 사용하면 valet use php@version 명령을 사용하여 PHP 버전을 전환할 수 있습니다. 지정된 버전이 설치되지 않은 경우 Valet은 Brew를 통해 지정된 PHP 버전을 설치합니다:
valet use php@7.2 valet use php
그러나 이는 새로운 버전의 valet이어야 하며 먼저 업그레이드해야 합니다. 그렇지 않으면 다음과 같이 오류가 보고됩니다.
[qian@bogon ~ ]$ valet use php@7.2 Command "use" is not defined.
valet 업그레이드:
터미널에서 할 수 있습니다. Valet을 업데이트하려면 작곡가 글로벌 업데이트 명령을 사용하세요. 업그레이드 후에는 필요한 경우 Valet이 구성 파일을 업그레이드할 수 있도록 valet install을 다시 실행하는 것이 가장 좋습니다(실제로는 필요한 것으로 확인됨).
composer global update valet install
그러면 괜찮습니다. Valet은 php@7.2
[qian@bogon ~ ]$ valet use php@7.2 Stopping php@7.1... Unlinking current version: php@7.1 Linking new version: php@7.2 Updating PHP configuration... Restarting php@7.2... Restarting nginx... Valet is now using php@7.2.
기록 추적
1을 사용하여 php72를 처음 설치할 때 권한이 부족하여 Frameworks 디렉토리를 생성할 수 없습니다
오류가 발생합니다.
==> Pouring python-3.7.4_1.mojave.bottle.tar.gz Error: An unexpected error occurred during the `brew link` step The formula built, but is not symlinked into /usr/local Permission denied @ dir_s_mkdir - /usr/local/Frameworks Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
그런 다음 /usr/local/로 이동하여 새 디렉터리 Frameworks를 만들고 다시 Brew install php72를 실행합니다
두 번째, Brew를 사용하여 php 버전 도구를 설치하면 명령이 실패합니다
brew install php-version
오류 메시지가 뜹니다
[qian@bogon ~ ]$ brew install php-version Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> Updated Formulae atomist-cli webtorrent-cli Error: No available formula with the name "php-version" ==> Searching for a previously deleted formula (in the last month)... Warning: homebrew/core is shallow clone. To get complete history run: git -C "$(brew --repo homebrew/core)" fetch --unshallow Error: No previously deleted formula found. ==> Searching for similarly named formulae... Error: No similarly named formulae found. ==> Searching taps... ==> Searching taps on GitHub... Error: No formulae found in taps.
"php-version"이라는 건 없다고 했고, "homebrew/core"도 꺼냈습니다
git -C "$(brew --repo homebrew/core) " fetch --unshallow
3. php -v를 실행하면 dyld가 보고됩니다: 라이브러리가 로드되지 않음: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
[qian@bogon ~ ]$ php -v dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib Referenced from: /usr/local/bin/php Reason: image not found [1] 66728 abort php -v
어쨌든 그냥 다시 설치합니다
brew uninstall --force php71 && brew install php71
4.발렛 환경에서는 php-version이 안되네요
발렛을 사용하는 친구가 없다면 다음 내용은 안 읽어도 됩니다~
위의 방법 1처럼 php-version이 설치되어 있습니다. , php -v도 직면
하지만. . . . sudo pkill -INT -o php-fpm 또는 sudo kill -9 프로세스 ID 사용에 관계없이
는 php-fpm 프로세스를 종료할 수 없습니다. 프로세스를 보려면 ps -ef | grep php를 사용하세요.
[qian@bogon ~ ]$ ps -ef |grep php 501 307 1 0 四09上午 ?? 51:34.33 /Applications/PhpStorm.app/Contents/MacOS/phpstorm -psn_0_90134 0 70900 1 0 2:33下午 ?? 0:00.11 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize 501 70901 70900 0 2:33下午 ?? 0:00.00 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize 501 70902 70900 0 2:33下午 ?? 0:00.00 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize 501 70904 10409 0 2:33下午 ttys007 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn php
에서 phpinfo() 인쇄 코드는 여전히 이전 PHP 버전으로 전환했기 때문에 이유를 찾고 다른 방법을 찾아야 했습니다
sudo php-fpm 명령을 사용하여 보고된 오류가 valet
[qian@bogon ~ ]$ sudo php-fpm && php -v Password: [16-Sep-2019 18:27:08] ERROR: An another FPM instance seems to already listen on /Users/qian/.config/valet/valet.sock [16-Sep-2019 18:27:08] ERROR: FPM initialization failed [qian@bogon ~ ]$
그런 다음 Valet의 PHP 버전을 전환하는 방법을 알아보는 문서를 찾았습니다!
위 내용은 PHP 버전을 사용하여 macOS에서 PHP 버전 전환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!