这个问题听起来可能微不足道,但它一直困扰着我。我为一个 Web 界面编写了两个简单的 php 脚本,它们只有在其他脚本被赋予读取和执行权限时才能工作。我不明白为什么读取权限是必要的。有人能解释一下或给我提供参考吗?
答案1
PHP 不会被执行,而是由 php 可执行文件“解释”的。为此,您的 .php 文件不需要设置执行权限。但它们必须由 php 解释器读取,因此必须设置读取权限。
答案2
网络服务器和调用它的 php 可执行文件需要能够读取源代码,以便对代码进行字节编译并执行。如果 php 和/或 apache 服务器以不同的用户身份运行,则您的站点索引文件需要可读。
答案3
一些 Web 服务器使用执行位作为“魔法”标记,以便知道文件应该被解释,而不是原封不动地返回给用户。这不是 Apache 中 php 的默认行为,但它曾经是 perl 作为 CGI 的一个选项。