시스템과 함께 제공되는 PHP 버전과 새로 설치된 PHP 고급 버전이 동시에 존재하기 때문에 PHP 버전이 일치하지 않으며, 터미널과 phpinfo에서 로드되는 파일의 위치가 일치하지 않습니다. 해결 방법은 다음과 같습니다. 높은 버전의 PHP 설치 디렉터리에서 높은 버전의 "php-fpm" 설치 디렉터리도 터미널 구성 파일에 추가됩니다.
추천: "PHP Video Tutorial"
문제는 시스템 자체 PHP 버전과 새로 설치된 PHP Advanced 버전이 공존하고, 터미널과 phpinfo()에서 로드하는 파일 위치가 일치하지 않는다는 것입니다.
그 중
nginx 서비스에서 phpinfo()를 구문 분석하는 것은 php-fpm에 의존하므로 phpinfo()의 출력은 php-fpm에 의해 시작된 버전입니다.
그리고 터미널 실행은 php -v
; >는 터미널 구성 파일에 설정된 PHP 설치 디렉터리에 해당하는 PHP 버전을 로드합니다. php -v
是加载终端配置文件中设置的php安装目录对应的php版本的;
所以导致两者php版本不一致主要就是启动的php-fpm版本和终端配置的php版本不一致。
直接的解决办法就是将高版本php安装目录下的高版本php-fpm安装目录也加到终端配置文件,让系统自动加载高版本php-fpm即可。
配置~/.bash_profile:
export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}
如果系统使用的是zsh,就在~/.zshrc
文件最后添加:
source ~/.bash_profile
然后再执行
source ~/.zshrc
使配置生效,并重启php-fpm
sudo killall php-fpm
sudo php-fpm -D
即可
1、查看当前php版本
php -v
得到以下输出:
PHP 7.2.23 (cli) (built: Oct 10 2019 10:15:26) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies
2、查看php安装位置
which php
或
whereis php
得到以下输出:
/usr/local/Cellar/php@7.2/7.2.23/bin/php
3、查看php-fpm 版本和安装位置
php-fpm -v
得到以下输出:
PHP 5.6.30 (fpm-fcgi) (built: Oct 29 2017 20:31:21) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
which php-fpm
得到以下输出:
/usr/sbin/php-fpm
以上查看一遍后,发现php加载的安装目录是新安装的php高级版本,而php-fpm 还是mac系统自带的低版本,原因是在系统终端配置文件中配置了新版本php安装位置,但是没有配置php-fpm的安装位置,导致启动php-fpm时自动加载的是系统低版本的php-fpm,当php框架依赖高版本php时,就会无法运行。
4、配置新版本php-fpm加载目录
配置~/.bash_profile
:
export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}
如果系统使用的是zsh,就在~/.zshrc
文件最后添加:
source ~/.bash_profile
或直接将上述路径配置设置在~/.zshrc
文件中。
然后执行source ~/.zshrc
(base) qingshan@qingshan ~ php-fpm -v PHP 7.2.23 (fpm-fcgi) (built: Oct 10 2019 10:15:34) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies
~/.zshrc</code 끝 부분에 있습니다. > 파일 추가: <p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">sudo killall php-fpm</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div></p> 그런 다음 <p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">sudo php-fpm -D</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div>를 실행하여 구성을 적용하고 php-fpm<p>rrreeerrreee</p>을 다시 시작합니다. 그게 다입니다<p></p>
<h3 id="Specific process:">특정 프로세스:</h3>
<img src="https://img.php.cn/upload/article/000/000/020/eaf8180b55d6ddf4760f15b90b8e8426-0.png" alt="" loading="lazy">1. 현재 PHP 버전 rrreee🎜다음 출력을 가져옵니다.🎜rrreee🎜2. PHP 설치 위치를 확인하세요🎜rrreee🎜 또는 🎜rrreee🎜다음 출력을 가져옵니다.🎜rrreee🎜3.php-fpm 버전과 설치 위치를 확인하세요🎜rrreee. 🎜다음 출력을 얻습니다.🎜rrreeerrreee🎜 다음 출력을 얻습니다. 🎜rrreee🎜위를 확인한 결과 php에서 로드한 설치 디렉터리는 새로 설치된 php의 고급 버전이고 php-fpm은 여전히 그 하위 버전인 것을 확인했습니다. Mac 시스템과 함께 제공되는 이유는 시스템 터미널 구성 파일에 새 버전이 구성되어 있지만 php-fpm 설치 위치가 구성되어 있지 않기 때문입니다. 시스템의 낮은 버전의 php-fpm이 자동으로 로드됩니다. PHP 프레임워크가 더 높은 버전의 PHP에 의존하는 경우 실행되지 않습니다. 🎜🎜4. php-fpm 로딩 디렉터리의 새 버전을 구성합니다. 🎜🎜<code>~/.bash_profile
을 구성합니다: 🎜rrreee🎜시스템이 zsh를 사용하는 경우 ~/.zshrc
에서 > 추가: 파일 끝에 🎜rrreee🎜를 추가하거나 ~/.zshrc
파일에서 위 경로 구성을 직접 설정합니다. 🎜🎜그런 다음 source ~/.zshrc
를 실행하여 구성을 적용하세요🎜🎜5. 현재 php-fpm 버전을 확인하세요🎜rrreee🎜php-fpm의 상위 버전이 자동으로 로드되었습니다. 🎜🎜6. php-fpm을 다시 시작합니다🎜🎜백그라운드에서 실행 중인 php-fpm 프로세스를 종료합니다🎜rrreee🎜php-fpm을 시작하고 백그라운드에서 실행합니다.🎜rrreee🎜현재 phpinfo에서 출력되는 php 버전 정보는 최신입니다. 버전 7.2🎜🎜🎜🎜위 내용은 php -v 및 phpinfo()의 PHP 버전 출력이 일치하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!