Die PHP-Version ist inkonsistent, da die mit dem System gelieferte PHP-Version und die neu installierte erweiterte PHP-Version gleichzeitig vorhanden sind und der Speicherort der vom Terminal und phpinfo geladenen Dateien inkonsistent ist. Die Lösung besteht darin, die zu ändern Die Hochversion des PHP-Installationsverzeichnisses wird ebenfalls zur Terminalkonfigurationsdatei zum Installationsverzeichnis der Hochversion „php-fpm“ hinzugefügt.
Empfohlen: „PHP-Video-Tutorial“
Das Problem besteht darin, dass die systemeigene PHP-Version und die neu installierte erweiterte PHP-Version nebeneinander existieren und die vom Terminal und phpinfo() geladenen Dateispeicherorte inkonsistent sind.
Unter diesen basiert
nginx-Dienst, der phpinfo() analysiert, auf php-fpm, daher ist die Ausgabe von phpinfo() die von php-fpm gestartete Version
Und die Terminalausführung php -v
ist die PHP-Version zu laden, die dem in der Terminalkonfigurationsdatei festgelegten PHP-Installationsverzeichnis entspricht. 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 > Datei hinzufügen: <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">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div></p> Dann <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">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div> ausführen, um die Konfiguration wirksam zu machen, und php-fpm neu starten<p>rrreeerrreee</p> Das ist es<p></p>
<h3 id="Specific Process:">Spezifischer Prozess:</h3>
<img src="https://img.php.cn/upload/article/000/000/020/eaf8180b55d6ddf4760f15b90b8e8426-0.png" alt="" loading="lazy">1 die aktuelle PHP-Version rrreee🎜Erhalten Sie die folgende Ausgabe:🎜rrreee🎜2. Überprüfen Sie den PHP-Installationsort🎜rrreee🎜 oder 🎜rrreee🎜Erhalten Sie die folgende Ausgabe:🎜rrreee🎜3. Überprüfen Sie die PHP-FPM-Version und den Installationsort🎜rrreee 🎜Erhalten Sie die folgende Ausgabe:🎜rrreeerrreee🎜 Erhalten Sie die folgende Ausgabe: 🎜rrreee🎜Nachdem ich das oben Gesagte überprüft habe, habe ich festgestellt, dass das von PHP geladene Installationsverzeichnis die neu installierte erweiterte Version von PHP ist und php-fpm immer noch die niedrigere Version ist Der Grund dafür ist, dass die neue Version in der PHP-Installationsdatei des Systems konfiguriert ist, der Installationsort von PHP-FPM jedoch nicht konfiguriert ist. Die niedrigere Version von PHP-FPM des Systems wird automatisch geladen. Wenn das PHP-Framework auf einer höheren Version von PHP basiert, wird es nicht ausgeführt. 🎜🎜4. Konfigurieren Sie die neue Version des PHP-FPM-Ladeverzeichnisses 🎜🎜Konfigurieren Sie <code>~/.bash_profile
: 🎜rrreee🎜Wenn das System zsh verwendet, einfach in ~/.zshrc
Fügen Sie am Ende der Datei Folgendes hinzu: 🎜rrreee🎜 oder legen Sie die obige Pfadkonfiguration direkt in der Datei ~/.zshrc
fest. 🎜🎜Dann führen Sie source ~/.zshrc
aus, damit die Konfiguration wirksam wird🎜🎜5. Überprüfen Sie die aktuelle PHP-FPM-Version🎜rrreee🎜Die höhere Version von PHP-FPM wurde automatisch geladen. 🎜🎜6. Starten Sie php-fpm neu.🎜🎜Beenden Sie den im Hintergrund laufenden PHP-FPM-Prozess Version 7.2🎜🎜🎜🎜Das obige ist der detaillierte Inhalt vonWarum sind die von php -v und phpinfo() ausgegebenen PHP-Versionen inkonsistent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!