這篇文章主要講解了“怎么實(shí)現(xiàn)Mac PHP版本切換”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么實(shí)現(xiàn)Mac PHP版本切換”吧!
創(chuàng)新互聯(lián)公司一直通過(guò)網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、全網(wǎng)整合營(yíng)銷推廣服務(wù)為核心業(yè)務(wù)。十多年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開(kāi)發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
這篇文章中你將了解到以下內(nèi)容
查看php基本環(huán)境
理解PHP運(yùn)行模式
brew-php-switcher基本使用
理解bash_profile配置文件
brew安裝軟件相關(guān)的命令
在開(kāi)始執(zhí)行PHP版本相關(guān)操作之前,我們先檢查下本地環(huán)境重啟Mac之后
執(zhí)行以下命令
brew services list
以上我們可以看出 有兩個(gè)php服務(wù)存在,而系統(tǒng)或者命令行會(huì)認(rèn)其中的一個(gè),識(shí)別哪個(gè)php環(huán)境是另外一件事,后邊會(huì)敘述。
這里先補(bǔ)充php運(yùn)行的一個(gè)基礎(chǔ)知識(shí)
業(yè)界公認(rèn)的PHP運(yùn)行模式有4種
1 CGI通用網(wǎng)關(guān)接口模式
2 FAST-CGI模式
3 CLI命令行模式
4 模塊模式
前兩者涉及到協(xié)議升級(jí),也就是常說(shuō)的php-fpm,模塊模式涉及到服務(wù)器與協(xié)議的搭配,比如Apache,nginxCLI命令行模式就是shell命令行,php -v;這樣的命令理解這個(gè)概念,有助于判斷當(dāng)前運(yùn)行的PHP實(shí)際版本是哪一個(gè)
進(jìn)而理解 php -v;結(jié)果和 網(wǎng)頁(yè)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)版本有哪些
brew search php
brew-php-switcher是一個(gè)php環(huán)境版本切換工具,對(duì)通過(guò)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也無(wú)法實(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
上文中提到 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)頁(yè)會(huì)直接顯示502
brew services restart php
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.
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
通過(guò)修改~/.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
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
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
查看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
查看通過(guò)brew安裝的服務(wù)列表
brew services list
感謝各位的閱讀,以上就是“怎么實(shí)現(xiàn)Mac PHP版本切換”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么實(shí)現(xiàn)Mac PHP版本切換這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!