>  기사  >  백엔드 개발  >  PHP 버전을 사용하여 macOS에서 PHP 버전 전환

PHP 버전을 사용하여 macOS에서 PHP 버전 전환

藏色散人
藏色散人앞으로
2019-09-19 10:06:534314검색

로컬 환경은 회사 프로젝트 환경과 일치하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제