2014-08-30 48 views
12

我基本上是PHP的開發者。我目前在本地機器上使用Ubuntu Linux 12.04 LTS我可以從PHP 5.3.10遷移到PHP 5.6.0嗎?

我使用以下PHP版本開發我PHP項目:

php -v //command run at terminal to know the `PHP` version installed 

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul 7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies 

現在一兩天的背面PHP版本(PHP 5.6.0)的新最新的穩定版本是由PHP開發團隊發佈。

我的問題是,因爲我用我的本地機器上的PHP版本,這是太舊了,而且比5.4下所有PHP版本是官方支持或宣佈結束生命,我應該去PHP 5.6.0

如果您的答案是肯定的,請解釋我該怎麼做?在我的項目中編寫的代碼是否會在遷移後正常工作?我需要做什麼改變?

如果你的答案是否定的,請詳細解釋一下爲什麼?

在問這個問題之前,我已經通過GooglePHP文檔。在那裏,我發現遷移筆記以下版本遷移:

**5.3.x->5.4.x 
    5.4.x->5.5.x 
    5.5.x->5.6.x** 

沒有得到如何遷移從PHP 5.3.10PHP 5.6.0

那麼有人可以幫我這方面嗎?

如果您需要關於我的問題的任何進一步的信息,請讓我知道。

+1

你應該總是使用你的軟件包管理器來更新軟件。只有在絕對必要時手動更新,因此,當正式存儲庫中缺少包時,您不想使用第三方存儲庫。 – Luka 2014-08-30 07:05:03

+0

@Luka:包管理器的含義是什麼,我應該使用哪個包管理器? – user2839497 2014-08-30 07:22:42

+1

軟件包管理器是一個用於自動搜索和安裝軟件包及其依賴關係的程序。 'apt'是一個包管理器的例子。所有基於Debian的發行版(因此也是Ubuntu)都默認使用它。例如,基於RedHat的發行版有'yum'。所以你應該總是使用'apt-get install php'安裝更新。如果軟件包已安裝並且有新的更新可用,它們將被安裝。如果軟件包完全沒有安裝,它將在運行'apt-get install'後的幾分鐘內安裝。看DevilishDB的答案。 – Luka 2014-08-30 08:12:02

回答

8

TL; DR PHP 5.3.x仍然會被Ubuntu獲得安全升級,但升級到14.04.1爲

你可以從網站上下載,並建立/安裝PHP 5.6的來源,但較新的版本唐因爲這意味着您可能會失去系統的穩定性,因爲系統中的其他軟件包不會針對此版本設計,並且每次出現新版本時都必須手動升級,如果這些升級有風險與安全相關,因爲您不會像使用軟件包管理器那樣快速升級它們。

相反,我建議你升級你的發行版到Ubuntu 14.04.1,其中包含PHP 5.5.9;比5.3.10更新。當然,在Ubuntu 12.04達到EOL之前,5.3.x仍然會收到安全更新,但是如果您希望獲得最新的功能,您應該進行遠程升級。如果您使用的是服務器版本,則可以在Ubuntu軟件更新程序中以圖形方式執行此操作,或者在TTY中以root身份運行apt-get dist-upgrade(例如,使用sudo)。 更新:改爲使用sudo do-release-upgrade

編輯:只是爲了澄清,apt-get是包管理器。如果您通常使用圖形工具來安裝和更新軟件包(ubuntu軟件中心,突觸等),這裏有一些簡單的命令。 #表示它必須以root身份運行(例如sudo apt-get install <package>),$表示您不需要sudo。用你想使用的東西替換東西(例如apt-get install chromium-browser

#apt-get update更新庫
#apt-get upgrade升級到更新包(運行上面的第一!)
#apt-get upgrade <package>就像上面,但只升級一個包(沒有多大用處,除非你有一個具體的原因)
#apt-get install <package>安裝了一個包
#apt-get remove <package>刪除一個包
#apt-get autoremove自動刪除由依賴安裝的,並且不再需要
$apt-cache search <query>搜索你給
查詢 $apt-cache show <package>顯示的信息爲一個包
#yes "" | apt-get install <package>安裝包接聽默認一切問題的答案包(可以使用yes有很多命令)
#apt-get dist-upgrade升級一切(並刪除一些包),當它可能通常被阻止。

+0

我找到了redditor。生病了 – 2017-12-21 22:30:33

5

升級到Ubuntu 14.04.1以獲得PHP 5.5.9作爲一個包,並受益於Ubuntu升級。無論如何,我不會在生產環境中使用5.6.0。

this PHP page您可以獲得有關遷移從5.3到5.4和5.4到5.5的信息。

除了提到的更改和新功能外,PHP團隊還從事內存管理和5.3和5.5.9之間的優化工作。僅這些改進就會促成移民。建議

件爲遷移

  • APC:PHP現在嵌入OPCache作爲替代APC的。如果您使用APC變量,則有一些關於OPCache的信息可用 - 在我的情況下,通過新模塊(名稱更改)使用舊的APC,php5-apcu(注意'u')是最佳選擇。

  • 模塊安裝在不同的目錄中。如果你想把你的php.iniextension_dir可能不得不被調整

  • 此外,/etc/php5 dir是在結構方面更爲苛刻:低於dir是mods-available(點菜nginx的),它包含的列表模塊ini文件。然後在cli,fpm,apache2 ...目錄是一個conf.d目錄,它具有到主要mods-available模塊ini文件的符號鏈接;如果您打算將該模塊用於該PHP配置,則僅添加一個鏈接(例如mysqli對於cli可能不需要)。

  • JSON:模塊php5-json必須安裝(apt-get install php5-json),以獲得PHP JSON功能(json_encodedecode ...)

  • 注意到,它似乎有一個 php.ini中聯/etc/php5/MODE/php.ini(MODE是cli一個問題,...)的地方(例如,在fpm) - 在Ubuntu的更新,出現的錯誤導致安裝 - 我剛剛複製了php.ini,因爲它們對於我所有的模式都是一樣的。

除此之外,遷移進行得順利。