php如何获取服务器信息?php获取服务器环境信息变量

坦白讲,在PHP中获取服务器信息就像打开盲盒一样。
$_SERVER 是一个基本工具,但也不要忽视其他工具。
你必须通过安检。

要部署,首先使用$_SERVER获取$_SERVER['REMOTE_ADDR']等基本配置(客户端IP,但需要防止代理模拟;去年我运行这个项目时,遇到了代理IP随机报告的陷阱)。
另一点是 $_SERVER['REQUEST_METHOD'] (GET/POST 方法,去年由于表单提交未经过验证而被绕过)。
还有一些重要的细节。
例如,$_SERVER['PHP_SELF'] 可以被篡改,并且必须使用specialchars() 进行转义。
用技术术语来说,这称为雪崩效应。
事实上,车头稍有拖沓,就会导致整个车尾塌陷。

起初我以为我可以使用 shell_exec('uptime') 运行任何命令,但后来我发现我错了。
我需要使用 exec() 但我需要限制白名单。
例如,只允许正常运行时间。
否则,命令注入的风险会比送货员送错饭菜的风险还要高。

最后一点:不要将 phpinfo() 视为装饰。
访问一次可以节省大量调试时间,但不要在生产中继续访问它。
这比泄露您的家庭住址更危险。

下载Apache时提示文件损坏的修复办法

说实话,我之前安装Apache的时候也遇到过这样的坑。
我根本无法安装这些文件,这很烦人。
当时尝试了各种办法,后来想出了一些办法,跟大家分享一下我自己的处理思路。

首先我们需要确认是哪一步导致了问题。
上次遇到文件损坏的情况,可能是因为下载过程中电脑突然没电了,或者是被杀毒软件意外切断了下载。
这种情况只要把损坏的文件删除然后重新下载就没有问题了。
但有时重新下载几次后还是不行,我开始怀疑是不是下载源有问题。

记住Apache官网的下载速度有时真的很慢,尤其是在国外的服务器上。
我尝试使用 wget。
这个工具非常稳定,断点续传功能非常好。
如果感觉浏览器下载不行,可以尝试换成wget。
如果你正确输入命令,通常可以一次性完成。
还有一个很酷的操作,就是同时下载源文件及其验证文件,用sha2 5 6 sum运行,秒出结果。
如果官网给出的检查值与你跑出来的值相同,则说明该文件没有被污染。

但最离谱的是,有一次,我换了好几个镜像站都打不通。
最后我发现是我本地的路由器有问题。
我一换调制解调器就解决了。
这种问题很奇怪。
尝试改变网络环境,有时可以解决大麻烦。
我有一个朋友,他的电脑上安装了代理,下载的东西总是乱码。
一旦他关闭代理,下载就成功了。
我当时根本就没有反应过来。

如果尝试了所有方法都不行,可能不是你的操作问题。
上次,我遇到了一个非常旧版本的 Apache。
安装到一半提示文件损坏。
后来我查了一下论坛,据说当时上传的时候有问题。
这个时候,不要强迫自己,尝试另一个版本,或者直接去邮件列表询问 Apache 的人。
但说实话,像我这样的菜鸟一般都不敢盲目改版本,怕惹出更严重的麻烦。

现在在安装任何东西之前,我总是检查官方网站上的更新日志。
有时最新版本更稳定。
而且每次下载后都要用校验和来检查,所以就养成了这个习惯。
这些开源软件开发者有时比商业软件更娇气,必须谨慎对待。