Apache,suexec,PHP,suPHP

虽然我作为一个Linux 用户很舒服,但是我的Linux Admin-fu有点弱。 因此,我在这里寻找我即将build立的CentOS服务器的指导。

我需要为我们的几个客户设置一个Apache2 Web服务器。 我希望每个客户端的Web内容都位于其主目录(apache.conf中的USERDIR ,对吗?),以供静态HTML网站使用。 我希望Apache作为客户端运行( suexec ?)。 他们的一些东西将是PHP应用程序,我觉得我也想看看suphp

所以基本上我想看起来像一个共享的networking托pipe公司的小版本。 考虑到这些是我常见 ,我想我很容易find一个很好的当前如何指导设置这一切,但到目前为止,我已经很less运气。 我怀疑我的search词是closures的。

所以问题(随意回答任何或全部):

  1. 任何人都有一些固定的链接到当前/现代指南,这将帮助我设置这一切? 不,apache文档网站不是指南;-)
  2. 由于我有静态网站和PHP应用程序的混合我想/需要安装suexec和suphp? 如果是这样,是否会引入我应该注意的任何挑战?
  3. 我应该看看其他选项,而不是suexec和suphp?

我打算给最终用户SSH,SFTP或SCP访问他们的东西(如果这影响了任何东西)。

在此先感谢您的帮助。

[编辑]我应该早些提到这一点:我的追求模仿与文件权限和所有权相关的共享主机提供商的一个关键目标。 我真的希望避免教导用户需要改变这些事情,以便看到他们的增加/改变。

使用suexec和suphp强制执行与默认不同的特权分离types。

默认是将用户的权限与Web服务器分开。 也就是说,用户拥有这些文件,他必须授予Web服务器权限才能查看和更改它们。

suexec / suphp模式是,networking服务器(运行脚本时)在用户的帐户下运行,所以网站有权执行用户有权执行的任何操作。 这在一定程度上消除了用户和networking服务器之间的分离,但作为交换,它实施了不同的分离:即在一个用户的网站和同一个盒子上不同用户的网站之间。

默认情况下,PHP总是在Apache的用户帐户下运行,所以一个网站的PHP脚本可以访问另一个网站的PHP脚本可以访问的任何文件。 因此,如果服务器上的一个帐户遭到黑客攻击,感染可能会传播给其他人。 SuPHP防止这一点。

suexec和suphp都不会影响apache提供静态内容的方式 。 所有的旧规则仍然适用。 相反,suexec和suphp会更改CGI和PHP(分别)运行的帐户。 Suexec使CGI可执行文件在所有者帐户下运行,而SuPHP使PHP脚本在所有者帐户下运行。

Suexec和SuPHP不一定更好 。 他们只是不同而已 。 他们不会阻止一个网站被黑客入侵(并且可能会使网站更容易被黑客入侵),但是它们将阻止一个网站的妥协传播给所有其他网站。 对于站点pipe理员来说,这种隔离可以说是更重要的,这就是为什么一些共享主机系统使suexec和suphp成为默认的。

一个非常常见的“疑难杂症”是SuPHP在运行之前检查脚本的所有权和权限,如果权限不合适,将返回500错误。

尤其是:

  • 文件的所有者和组必须与网站所有者匹配(如在apacheconfiguration中设置)
  • 该文件不能是世界可写的
  • 父目录不能是世界可写的