Linux

PHP升級失敗,CentOS 6.7

  • November 6, 2015

系統資訊

作業系統 CentOS Linux 6.7

x86_64 上的核心和 CPU Linux 2.6.32-042stab108.1

yum repolist enabled

只有我手動添加的

  • 基礎 - CentOS-6 -
  • Base epel - Enterprise Linux 6 - x86_64 的額外軟體包
  • 附加功能 - CentOS-6 - 附加功能
  • ius - 適用於 Enterprise Linux 6 - x86_64 的 IUS 社區包
  • mod-pagespeed - mod-pagespeed
  • remi-safe - 用於 Enterprise Linux 6 - x86_64 的 Safe Remi 的 RPM 儲存庫
  • rhscl-php55-epel-6-x86_64 - PHP 5.5.21 -
  • epel-6-x86_64 更新 - CentOS-6 - 更新
  • virtualmin - RHEL/CentOS/Scientific 6 - x86_64 -
  • Virtualmin virtualmin-universal - Virtualmin 分佈中性
  • 軟體包 vz-base - vz-base vz-updates - vz-updates

可用的已安裝版本

  • /usr/bin/php 5.3.3
  • /usr/bin/php55 5.5.30

我嘗試了以下(使用virtualmin)

  1. 為特定目錄啟用了 5.5.30,但未解決從 virtualmin 收到此錯誤此虛擬伺服器正在使用 PHP 的 mod_php 執行模式,因此不允許選擇每個目錄的版本。
  2. 啟用目錄特定版本home/<domain>/domains/<subdomain>.<domain>.com/public_html/public,並且phpinfo(); returns 5.3.3 version
  3. 嘗試yum replace php-common --replace-with=php55-php-common了太多的包裹WARNING: Unable to resolve all providers,但沒有繼續。
  4. 試圖刪除 5.3 版,但其他 php 程式碼中斷,這就是為什麼我猶豫更換該版本
  5. 瀏覽網頁尋找答案,卻發現當我嘗試閱讀時,超過一半的內容已損壞、儲存庫已過時或與其他軟體包衝突yum upgrade php

有人可以幫忙解決這個令人沮喪的情況嗎?我真的認為安裝另一個版本並為目錄啟用它可以解決這個問題。

我們建議您使用 SCL 版本的軟體包,以便 PHP 版本可以彼此和平共存,而不會引起您遇到的衝突。我在我們的新伺服器上執行了 Remi 的 PHP 5.6.15 包,在 Virtualmin 下,它工作正常(我確實必須調整 php-lib.pl 中的檢測程式碼,儘管幾天后就不需要了當新的 Virtualmin 出來時)。

此外,您應該使用 fcgid 執行模式,而不是mod_php。mod_php 只能存在於單個 Apache 實例中的一個版本中,並且永遠不會與多個版本一起使用。fcgid 是安裝了 install.sh 的 Virtualmin 系統中的預設執行模式,但可以在系統設置:伺服器模板:模板名稱:Apache 網站中進行配置。“預設 PHP 執行模式”是您想要的選項,而 FCGId 是使用多個 PHP 版本的正確值(以及其他各種好的理由)。

目前版本的 Virtualmin 尚不支持所有 SCL PHP 包,但下一個版本將輕鬆處理任意版本(並且可能能夠查詢 SCL 命令以確定您首選的 PHP 版本是什麼;我不’不知道其中有多少已經實施)。

在過去的幾周里,隨著 SCL 獲得了更多的 PHP 版本,以及 Virtualmin 對 SCL 包的支持得到了擴展,我們的論壇上已經有很多關於這個主題的討論。

這裡有一些文件(我不確定 Eric 是否已經更新,以解決 SCL 最近的變化,但如果還沒有的話,它們很快就會更新):

http://www.virtualmin.com/documentation/web/multiplephp

引用自:https://serverfault.com/questions/732513