溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么實(shí)現(xiàn)Mac PHP版本切換

發(fā)布時(shí)間:2021-07-15 09:22:53 來源:億速云 閱讀:445 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“怎么實(shí)現(xiàn)Mac PHP版本切換”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么實(shí)現(xiàn)Mac PHP版本切換”吧!

這篇文章中你將了解到以下內(nèi)容

查看php基本環(huán)境


理解PHP運(yùn)行模式


brew-php-switcher基本使用


理解bash_profile配置文件


brew安裝軟件相關(guān)的命令

怎么實(shí)現(xiàn)Mac PHP版本切換

在開始執(zhí)行PHP版本相關(guān)操作之前,我們先檢查下本地環(huán)境重啟Mac之后

執(zhí)行以下命令

brew services list

怎么實(shí)現(xiàn)Mac PHP版本切換

以上我們可以看出 有兩個(gè)php服務(wù)存在,而系統(tǒng)或者命令行會(huì)認(rèn)其中的一個(gè),識(shí)別哪個(gè)php環(huán)境是另外一件事,后邊會(huì)敘述。

這里先補(bǔ)充php運(yùn)行的一個(gè)基礎(chǔ)知識(shí)

PHP的運(yùn)行模式

業(yè)界公認(rèn)的PHP運(yùn)行模式有4種

1 CGI通用網(wǎng)關(guān)接口模式

2 FAST-CGI模式

3 CLI命令行模式

4 模塊模式

前兩者涉及到協(xié)議升級(jí),也就是常說的php-fpm,模塊模式涉及到服務(wù)器與協(xié)議的搭配,比如Apache,nginxCLI命令行模式就是shell命令行,php -v;這樣的命令理解這個(gè)概念,有助于判斷當(dāng)前運(yùn)行的PHP實(shí)際版本是哪一個(gè)

進(jìn)而理解 php -v;結(jié)果和 網(wǎng)頁phpinfo() 執(zhí)行結(jié)果不一樣的根本原因。

php-fpm -v

PHP 7.2.12 (fpm-fcgi) (built: Nov  9 2018 10:58:18)Copyright (c) 1997-2018 The PHP GroupZend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies    with Zend OPcache v7.2.12, Copyright (c) 1999-2018, by Zend Technologies

查看PHP相關(guān)版本

首先查看官方支持的php相關(guān)版本有哪些

brew search php

怎么實(shí)現(xiàn)Mac PHP版本切換

brew-php-switcher是什么

brew-php-switcher是一個(gè)php環(huán)境版本切換工具,對(duì)通過brew安裝的php版本進(jìn)行切換。

github地址 https://github.com/philcook/brew-php-switcher

作為php版本切換管理工具,brew-php-switcher與php version功能一致,可惜php version已經(jīng)放棄使用,對(duì)于mac用戶,只能選擇brew-php-switcher作為版本切換工具

brew 不提供5.6的安裝源了,所以brew-php-switcher也無法實(shí)現(xiàn)5.6的切換了

安裝

brew brew-php-switcher install

基本使用

brew-php-switcher +版本號(hào)

brew-php-switcher 

usage: brew-php-switcher version [-s|-s=*] [-c=*]

    version    one of: 7.0,7.1,7.2,7.3

    -s        skip change of mod_php on apache

    -s=*      skip change of mod_php on apache or valet restart i.e (apache|valet,apache|valet)

    -c=*      switch a specific config (apache|valet,apache|valet

如切換7.2版本

brew-php-switcher   7.2

Switching to php@7.2

Switching your shell

Unlinking /usr/local/Cellar/php@5.6/5.6.38... 25 symlinks removed

Unlinking /usr/local/Cellar/php@7.2/7.2.18... 0 symlinks removed

Unlinking /usr/local/Cellar/php/7.3.5... 0 symlinks removed

Linking /usr/local/Cellar/php@7.2/7.2.18... 25 symlinks created

If you need to have this software first in your PATH instead consider running:

  echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile

  echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.bash_profile

按照以上提示修改 環(huán)境變量并且

 source ~/.bash_profile

生效之后

執(zhí)行php -v;  控制臺(tái)php命令生效(cli)

php -v;

PHP 7.2.18 (cli) (built: May 22 2019 00:08:35) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

    with Zend OPcache v7.2.18, Copyright (c) 1999-2018, by Zend Technologies

執(zhí)行php-fpm -v;

php-fpm -v;

PHP 7.2.18 (fpm-fcgi) (built: May 22 2019 00:08:38)

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

    with Zend OPcache v7.2.18, Copyright (c) 1999-2018, by Zend Technologies

查看軟連接

cd /usr/local/opt/php@7.2/sbin/local/opt

ls -l

lrwxr-xr-x  1  admin  19  6  2 06:21 php -> ../Cellar/php/7.3.5

lrwxr-xr-x  1  admin  32  3 20 16:07 php-code-sniffer -> ../Cellar/php-code-sniffer/3.4.1

lrwxr-xr-x  1  admin  24  5 28 09:25 php@5.6 -> ../Cellar/php@5.6/5.6.38

lrwxr-xr-x  1  admin  24  6  2 05:54 php@7.2 -> ../Cellar/php@7.2/7.2.18

lrwxr-xr-x  1  admin  19  6  2 06:21 php@7.3 -> ../Cellar/php/7.3.5

識(shí)別PHP服務(wù)

上文中提到 brew services顯示兩個(gè)php服務(wù),我們可以使用下邊的命令依次關(guān)閉,檢驗(yàn)web服務(wù)識(shí)別的是哪個(gè)PHP版本

brew services stop php

brew services stop php@7.2

分別使用phpinfo() 查看當(dāng)前的運(yùn)行版本,當(dāng)php服務(wù)全部關(guān)閉時(shí),網(wǎng)頁會(huì)直接顯示502

brew services restart php

查看進(jìn)程

ps -ef | grep php-fpm

brew services start php@7.2

If you need to have php@7.2 first in your PATH run:

  echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile

  echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.bash_profile

You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

初步理解bash_profile配置文件

mac環(huán)境下,自定義安裝的軟件都會(huì)在 /usr/local/Cellar 路徑下,當(dāng)安裝軟件與系統(tǒng)原有軟件相互沖突時(shí),比如Python2.7與python3.n,PHP5.6與PHP7.n, 就需要指定默認(rèn)使用哪個(gè)版本。

系統(tǒng)配置文件

~/.bash_profile

通過修改~/.bash_profile,使系統(tǒng)識(shí)別默認(rèn)的Python版本為3.7

alias python="/usr/local/Cellar/python/3.7.0/bin/python3.7"

命令生效  source  ~/.bash_profile

PHP7安裝mongodb擴(kuò)展

which pecl

sudo /usr/local/opt/php@7.2/bin/pecl  install mongodb

Build process completed successfully

Installing '/usr/local/Cellar/php@7.2/7.2.14/pecl/20170718/mongodb.so'

install ok: channel://pecl.php.net/mongodb-1.5.3

Extension mongodb enabled in php.ini

YII2 MongoDb擴(kuò)展https://packagist.org/packages/yiisoft/yii2-mongodb"yiisoft/yii2-mongodb": "~2.1.0" 2.1.0 是一個(gè)版本節(jié)點(diǎn),之前使用老的mogo驅(qū)動(dòng)

php -m | grep mongodb

最后查了一圈資料發(fā)現(xiàn) 這個(gè)網(wǎng)址下的安裝教程挺實(shí)用的,還是依靠pecl安裝。

https://www.runoob.com/mongodb/php7-mongdb-tutorial.html

PHP7安裝redis擴(kuò)展

 sudo /usr/local/opt/php@7.2/bin/pecl  install  igbinary

sudo /usr/local/opt/php@7.2/bin/pecl  install redis

Build process completed successfully

Installing '/usr/local/Cellar/php@7.2/7.2.14/pecl/20170718/redis.so'

install ok: channel://pecl.php.net/redis-4.2.0

Extension redis enabled in php.ini

補(bǔ)充常用命令

查看php ini配置文件路徑

php -i | grep php.ini

輸出

Configuration File (php.ini) Path => /usr/local/etc/php/7.2

Loaded Configuration File => /usr/local/etc/php/7.2/php.ini

查看pecl路徑

which pecl

輸出

/usr/local/opt/php@7.2/bin/pecl

查看通過brew安裝的服務(wù)列表

brew services list

感謝各位的閱讀,以上就是“怎么實(shí)現(xiàn)Mac PHP版本切換”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么實(shí)現(xiàn)Mac PHP版本切換這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI