
自從在這裡提出此類問題以來已經有一段時間了。也許推薦的解決方案已經改變。
我有一個運行 RoundCube Webmail 的 CentOS 5.4 郵件伺服器。預設情況下,RoundCube 需要 PHP 版本 5.2 或更高版本。 CentOS 5 停留在版本 5.1.6,向後移植了 5.2 的某些功能。我禁用了 Roundcube 的 PHP 檢查,它運作良好。然而,我想使用的插件之一使用了 PHP 5.2 中引入的方法。
由於本例中 PHP 和 Postgres/MySQL 的綁定,將 PHP 版本從 5.1.6 升級到 5.2.x 的最佳方法是什麼?我見過第 3 方儲存庫、CentOS 測試、Fedora...或者我可以從原始碼編譯。我想讓這個系統保持穩定狀態,這樣它就不會在下一輪更新期間崩潰。
有什麼建議嗎?
答案1
我已經使用過很多次了原子回購協議。簡而言之,大多數情況下只需要三個步驟:
wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh
yum update php
service httpd restart
我顯然不能保證它對你有用,但對我自己來說,這已經成為標準方法。
答案2
只需安裝 Remi 儲存庫即可。並運行:
yum update -y
等待更新完成,然後使用 init 重新啟動您的 VPS:
init 6
現在您已成功更新系統上的 php。
答案3
我想說,這些方法中的任何一種都可能工作正常,但在嘗試之前你不會知道,所以你最好確保你的備份是有序的。話雖這麼說,在 Linux 上升級 php 比在 Windows 上容易得多,如果您遇到任何問題,我會感到驚訝。假設您的安裝(如果不是普通安裝)至少是普通安裝,那麼您應該可以使用預先包裝的 RPM。
有可能在同一網頁伺服器上執行不同版本的php;不幸的是,您只能將一個作為 Apache 模組運行,這讓您不得不擺弄 CGI 介面。
現代 RPM 的美妙之處在於您可以回滾安裝。這會讓事情變得更容易。
另一方面,如果您從原始程式碼構建,則可以將其建置在不同的目錄中。然後您所要做的就是更改 php apache 加載的 mod,並更改 php.ini 檔案的位置,然後您就可以升級,而不會對當前配置帶來任何風險。
答案4
我相信有多種解決方案,您選擇的解決方案取決於您的系統管理風格。
「簡單」的方法是從另一個儲存庫安裝 php 和相關套件,像這個。優點是花費的時間更少,缺點是您需要信任系統上二進位檔案的外部來源,以便及時更新並維護套件的完整性和安全性。
「困難」的方法是編譯你自己的。我說這“很難”,但實際上還不錯。我所做的就是保存所有 ./configure 命令,因此當發布新版本時,我只需使用相同的開關即可使我的 php 環境與先前版本的環境相同。
對於沒有繁瑣要求的系統,我使用 rpm rout(實際上 5.1 對於這些系統來說效果很好),但對於那些具有自訂 php 環境的系統,我仍然從原始程式碼進行編譯。
自己編譯 php 的另一個好處是,您可以真正了解並了解有關該軟體及其在伺服器上如何運作的更多資訊。您可以為此感到自豪,這將使您與其他系統管理員區分開來!