在mac

时间:2017-01-26 11:38:52

标签: php macos

我想更新php版本,目前我有5.5.38而且我想要7.1

到目前为止我尝试使用此命令:

curl -s https://php-osx.liip.ch/install.sh | bash -s 7.1

我尝试了几个不同的版本,但没有一个工作。 它打开bash_profile一秒钟然后我得到Received SIGHUP or SIGTERM并在下面发送消息:

缓冲区写入/Users/Morpheus/.bash_profile.save.6

不确定出了什么问题以及为什么它不会更新...

有什么想法吗?

感谢。

9 个答案:

答案 0 :(得分:23)

在mac上更新php版本的最简单方法是通过Homebrew。

如果您没有酿造,请访问https://brew.sh/ 或通过终端/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

中的命令安装

完成自制软件安装时,请执行以下命令:

brew update && brew upgrade
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
brew unlink php56  
brew install php71
  

如果先前没有通过brew安装PHP 5.6,您可能会收到错误,但不用担心,您可以继续。

您还可以将上述命令brew install php71中的命令替换为brew install php70,将版本更改为7.0。

您可以按命令检查输出。

php -v

如果php -v的输出仍然没有回应版本7,只需输入此命令并点击在终端输入。

export PATH=/usr/local/php5/bin:$PATH

答案 1 :(得分:4)

使用Homebrew:

我可能会建议您安装homebrew来管理此类安装。安装完成后,您只需运行以下命令即可安装php7.1

brew update
brew install php71

答案 2 :(得分:1)

尝试使用以下命令

brew update brew install php@72

如果显示以下错误,则

  

“错误:名称为“ php”的公式不可用

尝试

brew install php@7.2

答案 3 :(得分:0)

你可以brew upgrade php7brew uninstall旧的PHP版本。

最后,我建议你brew install php-version,php-version可以帮助你改变你的php版本

答案 4 :(得分:0)

安装php

brew install php@7.2

将所需的PHP安装到PATH

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
source ~/.bash_profile

然后确保一切正常

php -v
php --version

此命令将显示ini文件的加载位置

php --ini

答案 5 :(得分:0)

尝试使用该命令,它对我来说很好用

curl -s https://php-osx.liip.ch/install.sh | bash -s 7.3

答案 6 :(得分:0)

如果您运行上面的所有安装命令,但是在检查PHP版本时,它仍然链接到旧版本。所以你们可能想更新using System; using Microsoft.AspNetCore.Components.Forms; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; namespace TimeRecording.Extensions { public static class EditContextExtensions { static PropertyInfo IsModifiedProperty; static MethodInfo GetFieldStateMethod; /// <summary> /// Validates an entire object tree /// </summary> /// <param name="editContext">The EditContext to validate the Model of</param> /// <returns>True if valid, otherwise false</returns> public static bool ValidateObjectTree(this EditContext editContext) { var validatedObjects = new HashSet<object>(); ValidateObject(editContext, editContext.Model, validatedObjects); editContext.NotifyValidationStateChanged(); return !editContext.GetValidationMessages().Any(); } public static void ValidateProperty(this EditContext editContext, FieldIdentifier fieldIdentifier) { if (fieldIdentifier.Model == null) return; var propertyInfo = fieldIdentifier.Model.GetType().GetProperty( fieldIdentifier.FieldName, BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static); var validatedObjects = new HashSet<object>(); ValidateProperty(editContext, fieldIdentifier.Model, propertyInfo, validatedObjects); } private static void ValidateObject( EditContext editContext, object instance, HashSet<object> validatedObjects) { if (instance == null) return; if (validatedObjects.Contains(instance)) return; if (instance is IEnumerable && !(instance is string)) { foreach (object value in (IEnumerable)instance) ValidateObject(editContext, value, validatedObjects); return; } if (instance.GetType().Assembly == typeof(string).Assembly) return; validatedObjects.Add(instance); var properties = instance.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); foreach (PropertyInfo property in properties) ValidateProperty(editContext, instance, property, validatedObjects); } private static void ValidateProperty( EditContext editContext, object instance, PropertyInfo property, HashSet<object> validatedObjects) { NotifyPropertyChanged(editContext, instance, property.Name); object value = property.GetValue(instance); ValidateObject(editContext, value, validatedObjects); } private static void NotifyPropertyChanged( EditContext editContext, object instance, string propertyName) { if (GetFieldStateMethod == null) { GetFieldStateMethod = editContext.GetType().GetMethod( "GetFieldState", BindingFlags.NonPublic | BindingFlags.Instance); } var fieldIdentifier = new FieldIdentifier(instance, propertyName); object fieldState = GetFieldStateMethod.Invoke(editContext, new object[] { fieldIdentifier, true }); if (IsModifiedProperty == null) { IsModifiedProperty = fieldState.GetType().GetProperty( "IsModified", BindingFlags.Public | BindingFlags.Instance); } object originalIsModified = IsModifiedProperty.GetValue(fieldState); editContext.NotifyFieldChanged(fieldIdentifier); IsModifiedProperty.SetValue(fieldState, originalIsModified); } } }

对于我来说,我通过命令打开位于PATH目录中的.bash_profile

HOME

然后,我将路径添加到新版本的PHP:

nano ~/.bash_profile

最后,运行PATH=/usr/local/Cellar/php/7.4.4/bin:<other_paths> 命令刷新终端窗口并再次检查PHP版本。

希望这会有所帮助。

答案 7 :(得分:0)

尝试使用以下命令

brew update brew upgrade php 要么 brew reinstall php

答案 8 :(得分:0)

我运行的是 Mac OS 10.13.8 并且一直运行到 PHP 7.3 版

curl -s https://php-osx.liip.ch/install.sh | bash -s 7.3.8-20190811-205217