2010-03-26 155 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