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 。