2010-03-26 182 views
86

我觉得这是一个很难回答的问题,但奇怪的是,这个问题记录不完全。如何在Mac OS X中升级PHP?

我想升级PHP,但有几个问题:

  • 没有内置的包管理器。 MacPorts无法将PHP识别为已安装的软件包,因为它没有安装PHP本身。
  • 运行locate php表示可能存在许多依赖关系。
  • 我不知道PHP是如何安装的,因为它包含在操作系统中,所以我不知道应该从源代码安装还是下载二进制文件。我也不知道如何在不破坏依赖关系的情况下卸载以前版本的正确方法。

我在Leopard上运行。我有一种感觉,苹果不希望你升级。会购买雪豹和升级解决这个问题(和未来的喜欢它)?

+0

http://aerendir.me/2015/08/01/how-to-upgrade-php-built-in-your-mac-osx/ – TheCrazyProfessor 2017-05-08 09:32:31

回答

77

你可能想看看Marc Liyanage的PHP软件包。它有一个很好的Mac OS X安装程序包,您可以双击它。他保持最新状态。

http://php-osx.liip.ch/

此外,虽然升级到雪豹不会帮助你将来做PHP的更新,它可能给你的PHP的新版本。我正在运行OS X 10.6.2,它有PHP 5.3.0。

+0

谢谢!我很紧张,这个过程会变得更加困难。 – Gavin 2014-04-06 15:33:34

+5

请注意,这个软件包**不会覆盖** Mac上的原始PHP版本,所以它不能用于开箱即用,您需要将新目录添加到PATH中。使其工作的说明在该页面上(我第一次很愚蠢,错过了这一点)。 – 2014-04-10 18:52:53

+1

哇!花了几个小时试图通过Homebrew获得安装过程后,我试了一下。超级快速,超级简单,它实际上可以直接使用!谢谢! – BadCash 2014-08-17 16:29:49

8

没有内置的包管理器。 MacPorts无法将PHP识别为已安装的软件包,因为它没有安装PHP本身。

您仍然可以使用MacPorts安装它。 sudo port install php52(或任何你想要的版本)将安装PHP。

它不会覆盖Apple提供的版本。它会将其安装在/opt/local之下。您可以将/opt/local添加到$PATH的开头,并在Apache配置中使用MacPorts版本。

+0

你怎么了找出php版本的软件包名称? – David 2014-06-26 22:11:10

2

升级到Snow Leopard并不能解决让PHP保持最新状态的主要问题。苹果并不总是保持它捆绑的第三方软件与操作系统更新。依靠苹果为您提供所需的错误修复/安全更新正在寻求麻烦。

此外,我会建议通过MacPorts进行安装(并进行必要的配置以使用它的而不是Apple的PHP的),而不是尝试升级Apple提供的PHP。您对/usr/bin所做的任何操作都有可能被未来的Apple更新所覆盖。

+0

Apple的安全更新2010-002将Leopard的PHP更新为5.2.12。 – 2010-03-30 00:07:10

+0

PHP 5.3.1附带Snow Leopard。 – JAL 2010-07-17 22:41:26

6

选项#1

根据建议herethis site提供了一个方便的,最新的班轮。

这不会覆盖您的系统上的基本版本的PHP,而是将其安装在/ usr/local/php5中。

选项#2

我的优选的方法是只install via Homebrew

+1

你的意思是[this](https://github.com/josegonzalez/homebrew-php)?理想情况下,你会总结一切,你知道,在链接断开和简单的情况下冗余!另外值得注意的是它也不会取代苹果的PHP。 ; P – cregox 2015-09-11 23:41:23

3

我去之前,我有OS X服务器的最新版本(v5.0.15)(是的,太可怕了,我知道......但是,Web服务器,似乎工作A-OK)。我试图更新(或者至少让Apache指向)PHP的新版本,我搜索了几天。我的mcrypt没有工作,以及其他扩展,我从http://php-osx.liip.ch/和其他教程安装和重新安装PHP无数次,直到我终于注意到在许多不同的.conf文件中的一个评论中写入的信息的tid位OS X Server在加载Apache httpd.conf(位于/etc/apache2/httpd.conf之前,OS X服务器会加载它自己的定制文件.conf。服务器文件位于:

/Library/Server/Web/Config/apache2/httpd_server_app.conf 

当你打开这个文件,你必须注释掉这一行,像这样:

#LoadModule php5_module libexec/apache2/libphp5.so 

然后在正确的路径增加(这应该已经安装,如果你已经通过http://php-osx.liip.ch/链接安装)

LoadModule php5_module /usr/local/php5/libphp5.so 

此修改后,我的PHP最后加载正确的PHP安装。话虽如此,如果情况不妙的话,可能是因为在安装OS X时,OS X是为了解决PHP本地安装问题。要恢复,只需撤消上面的更改即可。

无论如何,希望这对任何花费无数小时的人都有帮助。

+1

这是新的OS X服务器的唯一工作答案 – Elvis 2016-10-10 16:18:32

+1

这个评论为我节省了很多时间! – GuyGizmo 2017-04-02 00:14:45

47

我用这个:https://github.com/Homebrew/homebrew-php

的命令是:

$ xcode-select --install 

$ brew tap homebrew/dupes 
$ brew tap homebrew/versions 
$ brew tap homebrew/homebrew-php 

$ brew options php56 
$ brew install php56 

.bash_profile.bashrc

# Homebrew PHP CLI 
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH" 
+3

你,我的朋友,应该有更多的赞扬。 <3 – dmmd 2016-05-04 14:16:30

+0

@walkerbe值得一杯...谢谢! – HumanSky 2016-10-18 14:35:33

+0

请注意,这不会更新嵌入式PHP,而是安装一个新的。尽管存在混淆,我仍然遇到了严重的麻烦... – 2016-11-21 13:00:05

-2

升级PHP7然后配置到最新的稳定版本brew upgrade php7 或PHP5 。X到最新的稳定版本

brew upgrade php56 

使用brew list检查安装击键版本

2

节能,这个工作在Mac OS塞拉利昂:

$ brew install homebrew/php/php71 

$ /usr/local/opt/php71/bin/php -v 
PHP 7.1.4 (cli) (built: Apr 14 2017 15:02:16) (NTS) 
Copyright (c) 1997-2017 The PHP Group 
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies 
+0

这就像一个魅力工作感谢 – geekido 2017-11-27 16:10:20

2

检查终端当前的PHP版本使用以下命令,

$ php -v 

你可以看到当前的PHP版本离子终端,并在终端下一个命令运行,如果你想使用版本为喜欢升级你的PHP版本PHP CONCAT,

$ brew install homebrew/php/php71 

,如果你完成了PHP版本升级安装并运行该命令请重新启动终端。

$ php -v 

现在您可以看到在终端当前的PHP版本....感谢

3

我想一个简单的方法来做到这一点,就是:

1 - 检查你哪里是你当前的PHP:

$ which php 
$ /usr/local/bin/php 

你看?通常情况下,我们运行我们的命令是在/ usr/local/bin目录这么一个链接...

2 - 取消这个当前的PHP

unlink /usr/local/bin/php 

的链接如果您prefere,之前解除连结,请检查路径,然后删除PHP文件(做ls -al /usr/local/bin | grep的PHP,然后rm -rf到所需的路径)

3 - 安装PHP 7.1

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

4 - 创建新的连接(使用pH p您已经安装了7.1斌)

ln /usr/local/php5-7.1.9-20170914-100859/bin/php /usr/local/bin/php 

就像我说的,它的一个简单的方法,我认为。

0

使用这个命令:

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0