PHP 配置預設允許站群伺服器在 HTTP 響應頭 X-Powered-By 中顯示安裝在站群伺服器上的 PHP 版本。
出於站群伺服器安全原因(雖然不是主要的要擔心的威脅),建議你禁用或隱藏此資訊,避免那些針對你的站群伺服器的攻擊者知道你是否執行了 PHP 。
假設你站群伺服器上安裝的特定版本的 PHP 具有安全漏洞,而攻擊者瞭解到這一點,他們將更容易利用漏洞並透過指令碼訪問站群伺服器。
在我以前的文章中,我已經展示瞭如何隱藏 apache 版本號,你已經看到如何不再顯示 apache 的安裝版本。但是如果你在你的 apache 站群伺服器上執行 PHP,你還需要隱藏 PHP 的安裝版本,這我們將在本文中展示。
因此,在本文中,我們將解釋如何隱藏或關閉站群伺服器 HTTP 響應頭中的 PHP 版本號。
此設定可以在載入的 PHP 配置檔案中配置。如果你不知道此配置檔案在站群伺服器上的位置,請執行以下命令找到它:

$ php -i | grep “Loaded Configuration File”

PHP 配置檔案位置

—————- 在 CentOS/RHEL/Fedora 上—————-
Loaded Configuration File => /etc/php.ini
—————- 在 Debian/Ubuntu/Linux Mint 上—————-
Loaded Configuration File => /etc/php/7.0/cli/php.ini

在對 PHP 配置檔案進行任何更改之前,我建議您首先備份您的 PHP 配置檔案,如下所示:

—————-在 CentOS/RHEL/Fedora 上—————-
$ sudo cp /etc/php.ini /etc/php.ini.orig
—————- 在 Debian/Ubuntu/Linux Mint 上—————-
$ sudo cp /etc/php/7.0/cli/php.ini /etc/php/7.0/cli/php.ini.orig

用你最喜歡的編輯器,使用超級使用者許可權開啟檔案:

—————- 在 CentOS/RHEL/Fedora 上—————-
$ sudo vi /etc/php.ini
—————-在 Debian/Ubuntu/Linux Mint 上—————-
$ sudo vi /etc/php/7.0/cli/php.ini

定位到站群關鍵詞 TDK expose_php,並將值設定成 Off:

expose_php = Off

儲存並退出檔案。之後,重啟 web 站群伺服器:

—————- 使用 SystemD —————-
$ sudo systemctl restart httpd

$ sudo systemctl restart apache2
—————- 使用 SysVInit —————-
$ sudo service httpd restart

$ sudo service apache2 restart

最後,不過同樣重要,使用下面的命令檢查站群伺服器 HTTP 響應頭是否仍然顯示你的 PHP 版本號。

$ lynx -head -mime_header http://localhost
或者
$ lynx -head -mime_header http://server-address

這裡的標誌含義是:

-head – 傳送一個請求 mime 報頭的 HEAD 請求。
-mime_header – 列印所提取檔案的 MIME 標頭及其原始碼。

注意: 確保你係統中已經安裝了命令列 web 瀏覽器 lynx 。