我需要为我们的一些客户设置Apache2 Web服务器.我希望每个客户端的Web内容都位于其主目录(apache.conf中的USERDIR,对吧?)下,用于静态HTML站点.我希望Apache作为客户端运行(suexec?).他们的一些东西将是PHP应用程序,我的印象是我还想看看suPHP.
所以基本上我想看起来像一个共享的网络托管公司的小版本.考虑到这些是多么常见我认为我很容易找到一个很好的当前如何指导设置这一切,但到目前为止,我运气很少.我怀疑我的搜索词是关闭的.
所以问题(随意回答任何或所有):
>任何人都有现实/现代指南的一些可靠的链接,可以帮我设置这一切吗?不,apache文档站点不是指南;-)
>因为我有混合静态网站和程序,我想要/需要suexec和
suPHP安装?如果是这样,那是否会引入我应该注意的任何挑战?
>我应该看看其他选项而不是suexec和suPHP吗?
我计划给最终用户SSH,SFTP或SCP访问他们的东西(如果这会影响任何东西).
在此先感谢您的帮助.
[编辑]
我之前应该提到这一点:我的一个关键目标是模拟与文件权限和所有权相关的共享主机提供程序.我真的很想避免让用户知道需要改变这些东西才能看到他们的添加/改变.
解决方法
默认设置是将用户的权限与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错误.
特别是: