Fedora

Fedora 33/32 - 安裝 PHP 7.3

  • November 12, 2020

看起來很簡單,但我無法在fedora 33上可靠地安裝php 7.4以外的任何版本(根據remi,32似乎有同樣的問題)。

PHP 7.4 是預設安裝,但我需要工作的項目由於依賴項在 7.4 中不起作用而被鎖定到 7.3 atm。

Remi 儲存庫也不能安裝在 7.4 以下,只有多個版本可以獲得 7.3,但是如果你這樣做,它也會安裝 7.4,雖然你可以告訴 nginx 使用 7.3,但 cli 被鎖定到 7.4(我打賭你可以做點什麼,只是不確定如何,基本上必須使用php73而不是php用於 cli 命令)。

使用 Fedora 33 的嚮導可以顯示可用的版本以及如何使用。 https://rpms.remirepo.net/wizard/

有沒有辦法可靠地讓 php 7.3 在 Fedora 33 上執行?只要 cli 和 fpm 都可以使用相同的版本,我不介意多版本。

多年前,我選擇僅提供單一版本版本 >= 預設分發版本。所以 F31 是 7.3、7.4 和 8.0,F32+ 是 7.4 和 8.0

創建軟體集合 (SCL) 時,允許多個版本,我選擇也提供舊版本,因此 F31+ 為 5.6 到 8.0

所以,確實,你必須在 F32+ 上使用 7.3 的 SCL

對於 FPM,您只需選擇正確的套接字路徑,您甚至可以為不同的站點/項目執行不同的版本

對於 cli,您必須使用啟用 SCL

scl enable php73 bash

或使用(我更喜歡這個)

module load php73

我的儲存庫中的大多數打包 CLI 應用程序都可以正常工作(composer、phpunit*…),因為我確保使用啟用的 SCL(使用“#!/usr/bin/env php”作為 shebang,而 /usr/bin/php總是在官方的 Fedora 軟體包中使用)。

當然,需要 PHP >= 7.4 的軟體包將不起作用(但我認為目前還沒有)。

另一種方法是安裝提供 /usr/bin/php 命令的php73-syspaths,但此包與 php-cli 衝突,因此您將無法安裝任何打包的應用程序。

你可以閱讀我的 PHP 工作站(很舊,可能需要刷新)

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