为什么PHP脚本的工作权限在服务器之间有所不同?

时间:2009-06-16 02:06:37

标签: php permissions

<?PHP

print "hello";

?>

我编写此代码并保存为“1.php”;

然后我将这个PHP脚本上传到我的 服务器

我有8个不同的免费托管服务器帐户。

我注意到有两种类型 服务器设置。

(1)
“A型”
为了exapmle,sqweebs。

我们需要将PHP文件权限设置为640 这意味着sqweebs服务器需要我们 为PHP脚本运行提供组权限。

如果我设置604,那么服务器会生成这样的 errors.like,

Warning: Unknown: 
failed to open stream:
 Permission denied in Unknown on line 0

Fatal error: Unknown: 
Failed opening required 
'/www/sqweebs.com/1.php' 
(include_path='.:/blahblah') 
in Unknown on line 0

(2)
另一方面,还有其他类型的 这世界上的服务器。

“B型”,
例如,izfree。

在这台服务器上,我发现了 如果我给它,我可以使PHP脚本工作 604作为许可。


所以我想知道为什么有很多服务器设置,
是什么原因,以及其他一些相关的 意见。

我应该使用哪个服务器,等等。

3 个答案:

答案 0 :(得分:1)

问题可能在于使用免费主机。它们会增加服务器限制,并且很可能会禁用/启用他们认为适合管理您在其网站上的行为方式的某些限制。

答案 1 :(得分:0)

这可能取决于权限以及运行apache的组/用户。如果它与你的权利一起运行,你可以用600,如果apache甚至不在同一个组中,你可能需要像604这样的东西。我只是说,这取决于服务器配置和文件权限。这是一个疯狂的猜测,但如果你真的需要604这样的东西,它可能是一个可能出现问题的迹象,其他用户可能会查看你的主目录...

答案 2 :(得分:0)

网络服务器期望文件必须具有网络服务器运行的用户的权限,才能打开并运行它。

因此,如果网络服务器(比如说Apache)以www运行,那么www应该具有对该文件的读访问权。 (有些运行apache作为www,有些运行它作为apache,或者没人)。

上传文件时,根据umask的设置方式,设置文件权限。 (因此,在一台主机上,当未明确设置权限时,该文件可以具有655或其他可以为600的权限。)

如果您对正常部署应用程序的操作系统有所了解,这总是有帮助的。大多数情况下,PHP部署在* nix系统上,并且所有* nix系统的权限方案几乎(几乎总是)相同。

尝试掌握“Unix系统管理手册”(由Evi Nemeth&amp; Co提供)。阅读起来非常有趣且易于理解(这是旧版本..但是unix权限没有改变)