我知道有很多不同的方法可以做到这一点,但我不确定哪种方法适合我的具体情况:
- 每个站点都应该有自己的用户帐户(站点用户)
- 虚拟主机指向站点用户主目录中的目录
- Apache 以站点用户的用户:组身份执行每个站点
- 可以以站点用户身份在站点上执行 CLI 命令
- 各个承包商负责维护一个或多个站点,每个承包商都应该有自己的帐户用户帐户
- 承包商还将拥有他们维护的每个站点帐户的帐户信息。他们将以站点用户身份登录以维护每个站点 - 要么直接使用 ssh 登录到该站点帐户,要么登录承包商帐户然后切换用户。
我首先想到的是使用,mod_fcgi
因为我认为这是一些我使用过的共享服务器环境中通常的做法。当然,我在谷歌上搜索了这个设置,但我找到的大多数指南都是随机的博客文章。我想要的是一些更可信的东西(比如 VPS 公司的 howto KB 或发行版 wiki)。这样,我可以将其作为一般指南指向管理员,我相信他会适应他如何设置这个特定的服务器。
答案1
我怀疑你会发现这篇文章是从一个可靠的来源。
我认为你标题问题的答案是看看苏普. 不幸的是文档相当稀少。
开箱即用的 suPHP 是在偏执模式下编译的,这意味着您必须根据每个虚拟主机的指令设置希望 PHP 运行的用户和组suPHP_UserGroup
(也可以设置全局默认值)。每个虚拟主机看起来都像这样
<VirtualHost *:80>
suPHP_Engine on
ServerName hostname.tld
DocumentRoot /home/websites/hostname.tld
suPHP_UserGroup hostname hostgroup
</VirtualHost>
如果您拥有(或预计拥有)大量虚拟主机,上述方法可能难以管理。您可以自行编译 suPHP 并将paranoid
模式更改为owner
模式。这会以 .php 文件的所有者/组身份运行脚本,并允许您利用 apache2 的VirtualDocumentRoot
指令,并大大简化您的虚拟主机配置。
<VirtualHost *:80>
suPHP_Engine on
ServerName something.tld
ServerAlias *
VirtualDocumentRoot /home/websites/%1/public_html
</VirtualHost>
你需要check_vhost_docroot
在 suphp.conf 中禁用它才能使后者的配置起作用
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=false
执行上述操作允许 apache 以帐户的用户/组身份“执行”站点。
您的其余观点都是您的管理员应该知道的基本管理知识。