PHP升級失敗,CentOS 6.7
系統資訊
作業系統 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)
- 為特定目錄啟用了 5.5.30,但未解決從 virtualmin 收到此錯誤此虛擬伺服器正在使用 PHP 的 mod_php 執行模式,因此不允許選擇每個目錄的版本。
- 啟用目錄特定版本
home/<domain>/domains/<subdomain>.<domain>.com/public_html/public
,並且phpinfo(); returns 5.3.3 version
- 嘗試
yum replace php-common --replace-with=php55-php-common
了太多的包裹WARNING: Unable to resolve all providers
,但沒有繼續。- 試圖刪除 5.3 版,但其他 php 程式碼中斷,這就是為什麼我猶豫更換該版本
- 瀏覽網頁尋找答案,卻發現當我嘗試閱讀時,超過一半的內容已損壞、儲存庫已過時或與其他軟體包衝突
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 最近的變化,但如果還沒有的話,它們很快就會更新):