我正在尝试用 PHP 构建一个应用程序来帮助我配置新网站。
新网站将始终基于特定的“代码库”,其中包含所有必要的网络文件。 我希望我的 PHP 脚本将这些 Web 文件从一个域的网络空间复制到另一个域的网络空间。 当我单击按钮时,一个空的网络空间将填充来自另一个域的文件。 两个域都位于同一 Linux/Apache 服务器上。
作为实验,我尝试在 PHP 中使用 shell 和 exec 命令以“root”身份执行操作。 (我知道这可能会造成重大安全漏洞,所以这不是我理想的方法。) 但我仍然遇到类似的权限问题,并且也无法使该方法发挥作用。
但是我在跨域复制时遇到了权限/所有权问题。 也许 CGI 脚本是一个更好的主意,但我不确定如何处理它。
如有任何建议,我们将不胜感激。 或者,如果您知道此类信息的更好资源,请指出我。 我确信以前已经构建过这种“网站设置”应用程序。
谢谢!
请您参考如下方法:
我也在做这样的事情。唯一的区别是我没有复制核心文件。系统只有一个核心,仅复制特定文件。
如果您想复制文件,则必须考虑以下事项:
一种简单(安全性较低的方法)是对所有网站使用同一用户
否则(如果您想提供不同的访问权限)- 您必须为每个网站创建不同的所有者。您必须为复制的文件设置所有者/组(这将由 root 完成)。
对于新网站设置: 任一主域都将以 root 身份运行,然后它将能够执行新网站的创建,或者如果您不希望主域为 root,则可以执行以下操作: 创建一个 cronjob(或在 CLI 下循环运行的 php 脚本),该脚本将由 root 执行。例如,它会每 2 分钟检查一些数据库记录,您可以从主域添加一条记录,其中包含新托管网站的设置信息(或者只是执行一些获得 root 访问权限的脚本,并且无需 cron 即可执行此操作)。
创建此内容的脚本可以在 php 中完成。它可以用您希望的任何语言来完成,只要获得正确的访问权限,这并不重要。
就我而言,我使用同一用户,因为它们都是我的网站。缺点是操作系统不会创建限制,我的 php 代码会(我失去了不同网站之间用户/组权限的优势)。
请注意,open_basedir 可能会给您带来一些麻烦,请确保排除正确的路径(或禁用它)。
另外,fastCGI 和 suPHP 之间也有一些细微的差别(我相信这不会给您带来太大的麻烦)。