2013年6月16日

ubuntu 10.04 更新 php 至 5.4.15

ubuntu 10.04 預裝的 PHP5 版本是 5.3.2
這個版本有安全性問題:

在PHP < 5.3.6之前的版本,存在緩衝區溢位(Buffer Overflow)漏洞 and 存在拒絕服務(Denial of Service)漏洞,由於程式設計錯誤的原因,導致惡意攻擊者可能會利用此種漏洞即可能癱瘓您的系統或取得更高的權限。 在PHP 5.3.6 之後的版本已修正此漏洞,建議您至下列網址取得最新版本安裝 http://www.php.net

==2013-12-17 後記==
今天想要更新另外一台 ubuntu 10.04 lucid 時,發現以前的方法好像不能用,後來發現是 PHP5 for 10.04的 ppa 變了,應該要改成 ppa:ondrej/php5-oldstable, 而不是 ppa:ondrej/php5。指令是
  sudo add-apt-repository ppa:ondrej/php5-oldstable
然後
  sudo apt-get update
再用
  sudo aptitude install php5 
來安裝, 以自動解決套件相依性問題, 裝好後
用 aptitude show php5 看安裝後版本 (我的是 5.4.23)
 
想更新至 5.4.15, 要用 ppa (以PPA for PHP5 為例:)

新增 ppa for php5 lucid

(以PPA for PHP5 為例:)

sudo vim /etc/apt/sources.list.d/php5-ppa.list
在(可能是空的)檔案中, 加入以下兩行

deb http://ppa.launchpad.net/ondrej/php5-oldstable/ubuntu lucid main
deb-src http://ppa.launchpad.net/ondrej/php5-oldstable/ubuntu lucid main

註:以下是舊網址,無法作用
deb http://ppa.launchpad.net/ondrej/php5/ubuntu lucid main
deb-src http://ppa.launchpad.net/ondrej/php5/ubuntu lucid main

再下更新指令:
sudo apt-get update

安裝 php5 的更新
sudo apt-get install php5

若有找不到部份檔案, 改用 aptitude 的解決方案
sudo aptitude install php5

查看安裝後版本

aptitude show php5

   套件: php5
   狀態: 已安裝
   已自動安裝: 否
   版本: 5.4.15-1~lucid+1


別忘了重啟 apache
sudo service apache2 restart

===註:===

沒有公鑰的解法

在加入 ppa 之後, 進行 sudo apt-get update 時, 常遇到

....
取得 634B 用了 4s (156B/s)
正在讀取套件清單... 完成
W: GPG error: http://ppa.launchpad.net lucid Release: 由於無法取得它們的公鑰,以下簽章無法進行驗證: NO_PUBKEY xxxxx

可下指令來解決:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxx

see also: http://dominic16y.world.edoors.com/CJF0FiPPvmww

若要移除 ppa (前面裝失敗的)

sudo apt-add-repository --remove ppa:zzz/xxx

以上這一行指令, 在 ubuntu 10.04 lucid 好像不能用, 參考這篇看看: How do I remove a PPA added via command-line?

 

 

沒有留言: