一个非常安全的选项是将 PHP 解析器二进制文件放在文件 Web 树之外的某个地方。例如,在 /usr/local/bin 中。这个选项唯一的缺点是,您现在必须在包含 PHP 标签的任何文件的首行添加类似于
#!/usr/local/bin/php
#!
shell-escape 机制启动自身的常见脚本语言编写的 CGI 脚本一样对待它。
要使 PHP 在此设置下正确处理 PATH_INFO 和 PATH_TRANSLATED 信息,必须启用 cgi.discard_path ini 指令。