PHP应用程序从单个代码源复制网站

时间:2011-09-01 22:36:24

标签: php linux apache

我正在尝试使用PHP构建应用程序来帮助我配置新网站。

新网站将始终基于特定的“代码库”,其中包含所有必需的网络文件。 我希望我的PHP脚本将这些Web文件从一个域的网站空间复制到另一个域的网站空间。 单击按钮时,将使用来自其他域的文件填充空的网站空间。 两个域都在同一个Linux / Apache服务器上。

作为一项实验,我尝试在PHP中使用shell和exec命令来执行“root”操作。 (我知道这可以打开主要的安全漏洞,所以这不是我理想的方法。) 但我仍然有类似的权限问题,也无法使用该方法。

但是我在跨域复制时遇到了权限/所有权问题。 也许CGI脚本是一个更好的主意,但我不确定如何处理它。

任何建议表示赞赏。 或者,如果您知道有关此类信息的更好资源,请指向我。 我确信之前已经构建了这种“网站设置”应用程序。

谢谢!

1 个答案:

答案 0 :(得分:0)

我也在做这样的事情。唯一的区别是我没有制作核心文件的副本。系统有一个核心,只复制特定文件。

如果要复制文件,则必须考虑以下因素:

  1. 简单(安全性较低)是为所有网站使用相同的用户

  2. 否则(如果您想提供不同的访问权限) - 您必须为每个网站创建不同的所有者。您必须为复制的文件设置所有者/组(这将由root完成)。

  3. 用于新网站设置: 主域名将以root身份运行,然后它将能够执行新的网站创建,或者如果您不希望主域名为root,则可以执行以下操作: 创建一个cronjob(或在CLI下循环运行的php脚本),将由root执行。例如,它会每隔2分钟检查一些数据库记录,您可以从主域添加一个记录,其中包含新托管网站的设置信息(或者只执行一些获得root访问权限的脚本,并且不使用cron)。

  4. 创建此脚本的脚本可以在php中完成。它可以用你想要的任何语言完成,只要获得正确的访问权限就没关系。

  5. 在我的情况下,我使用的是同一个用户,因为它们都是我的网站。缺点是操作系统不会创建限制,我的PHP代码会(我失去了不同网站之间用户/组权限的优势)。

    请注意open_basedir可能会让您感到麻烦,请确保排除正确的路径(或禁用它)。

    另外,fastCGI和suPHP之间存在一些细微差别(我相信它不会给你带来太多麻烦)。