当前位置:首页 > PHP教程 > 正文内容

在 macOS 下运用 PHP-version 切换 PHP 版本【php教程】,macOS,PHP

搜教程4年前 (2019-12-01)PHP教程182
当地环境是和公司项目环境保持一致的 7.1,然则 laravel6.0 升级必需请求 7.2,(组内有小伙伴的当地环境是 7.2,然后 push 代码以后致使项目 dev 环境没法自动布置),想了想,照样得在当地弄一个轻易切换 php 版本的东西。

要领一:装置 php-version(假如没有用 valet,这个应该是能够的)

step 1、运用 brew 装置多个 php 版本

brew install php71 // 底本有就不须要
brew install php72

step 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

php-version 7.2

如许运用敕令行敲 php -v 已经是切换后的版本。

要领二、 运用 valet use php@version (运用 valet 搭环境的小伙伴看这里)

这个实际上是属于我看文档不细致 - -,之前只大抵学了 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 的升级:

你能够在终端运用 composer global update 敕令来更新 Valet。升级后,若有须要,最好 (实践发明,是必需) 再次运转 valet install ,以便 Valet 对配置文件举行升级。

composer global update
valet install

然后,就 ok 了 valet use 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.

踩坑纪录

一、第一遍运用 brew 装置 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-version 东西,敕令失效

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

三、实行 php -v 时报 dyld: Library not loaded: /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

四、php-version 在 valet 环境中不起作用

假如没有用 valet 的小伙伴,下面就不必看了~

如上要领一,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 版本,然后找到啦!

以上就是在 macOS 下运用 PHP-version 切换 PHP 版本的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/15593.html

标签: macOSPHP
分享给朋友:

“在 macOS 下运用 PHP-version 切换 PHP 版本【php教程】,macOS,PHP” 的相关文章

怎样运用php删除字符串的末了一个字符【php教程】,php

怎样运用php删除字符串的末了一个字符【php教程】,php

php中删除字符串的末了一个字符的要领有很多种,本篇文章就来给人人引见一下关于php中删除字符串的末了一个字符的四种要领,有须要的朋侪能够参考一下。 要领1: substr_replace函数 运用substr_replace函数从PHP中删除字符串中的末了一个字符。 基础语法以下:...

FastCGI在PHP与Nginx之间的作用引见【php教程】,php,web服务器

本篇文章给人人带来的内容是关于FastCGI在PHP与Nginx之间的作用引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 一:什么是 CGI?服务器端编程言语如(如php/java)与Web服务器之间通报信息的协定,商定了http头、表单等信息的通报接口; 二:Fast...

PHP怎样运用Dompdf库将HTML转换为PDF?【php教程】,PHP,Dompdf库,HTML文件转换为PDF

PHP怎样运用Dompdf库将HTML转换为PDF?【php教程】,PHP,Dompdf库,HTML文件转换为PDF

当我们开辟大型PHP应用程序时,一般须要生成一些PDF文件。在本教程中,我们将给人人引见运用DomPDF库将html转换为pdf的的例子。经由过程DomPDF库,我们能够简朴地将html规划呈现为PDF文件。经由过程 DomPDF库我们能够编写外部款式表、内联款式标签、字体大小、字体色彩等。Dom...

guzzlehttp通报自定义cookie的要领引见(附代码)【php教程】,guzzle,php

本篇文章给人人带来的内容是关于guzzlehttp通报自定义cookie的要领引见(附代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 guzzlehttp是一个异常壮大的php言语的http client包,支撑保留前面要求服务端返回的cookie信息用于后续的要求。...

fastcgi与cgi有什么区别?【php教程】,cgi,php-fpm,nginx,php

fastcgi与cgi有什么区别?【php教程】,cgi,php-fpm,nginx,php

本篇文章给人人带来的内容是关于fastcgi与cgi有什么区分?有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 如今的CGI基础没人运用,不安全以及机能极为低下,越来越多的运用web内置扩大、fastCGI。比方微软iis的ISAPI,apache的php模块,nginx的ph...

PHP和JS完成模拟登录垂纶的代码示例【php教程】,javascript,php

本篇文章给人人带来的内容是关于PHP和JS完成模拟登录垂纶的代码示例,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 目次引见 login.php 一般登录的文件 selfLogin.php 自定义的登录文件 data.txt 纪录用户输入的数据 login.php &l...