阿帕奇,suexec,PHP,suPHP

Chr*_*s_K 13 linux centos suexec suphp apache-2.2

虽然我作为 Linux用户很自在,但我的 Linux Admin-fu 有点弱。因此,我在这里寻找有关我将要构建的 CentOS 服务器的指导。

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

所以基本上我想看起来像一个共享网络托管公司的小版本。考虑到这些有多常见,我想我很容易找到一个很好的当前操作指南来设置这一切,但到目前为止我运气很少。我怀疑我的搜索词已关闭。

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

  1. 任何人都有一些指向当前/现代指南的可靠链接,可以帮助我设置这一切?不,apache 文档站点不是指南 ;-)
  2. 由于我混合了静态站点和 PHP 应用程序,我是否想要/需要同时安装 suexec 和 suphp?如果是这样,这是否会带来任何我应该注意的挑战?
  3. 我应该查看其他选项而不是 suexec 和 suphp 吗?

我计划让最终用户通过 SSH、SFTP 或 SCP 访问他们的东西(如果这会影响任何事情)。

在此先感谢您的帮助。

[编辑] 我应该早先提到这一点:我寻求模拟与文件权限和所有权相关的共享托管服务提供商的一个关键目标。我真的很想避免教用户需要更改这些东西只是为了查看他们的添加/更改。

tyl*_*erl 15

使用 suexec 和 suphp 强制执行与默认值不同的权限分离类型。

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

suexec/suphp 模型是 webserver(运行脚本时)在用户的账户下运行,所以网站有权做用户有权做的任何事情。在一定程度上,这消除了用户和网络服务器之间的分离,但作为交换,它强制执行了不同的分离:即,在同一个盒子上的一个用户的网站和不同用户的网站之间。

默认情况下,PHP 始终在 Apache 的用户帐户下运行,因此一个网站的 PHP 脚本可以访问另一个站点的 PHP 脚本可以访问的任何文件。因此,如果服务器上的一个帐户被黑客入侵,感染可能会传播给其他帐户。SuPHP 阻止了这种情况。

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

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

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

特别是:

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

  • suexec/suphp 是您所追求的一个很好的解决方案。 (2认同)