【问题标题】:PHP application to replicate websites from single code source用于从单一代码源复制网站的 PHP 应用程序
【发布时间】:2011-11-08 19:04:06
【问题描述】:

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

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

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

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

感谢任何建议。 或者,如果您知道此类信息的更好资源,请指点我。 我敢肯定这种“网站设置”应用程序之前已经构建过。

谢谢!

【问题讨论】:

  • 您知道有一些工具可以为您做到这一点。
  • 我有一个模糊的想法,可能有用于此的工具。有什么具体建议吗?

标签: php linux apache


【解决方案1】:

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

如果你想复制文件,那么你必须考虑以下几点:

  1. 一种简单(不太安全的方式)是对所有网站使用同一用户

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

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

  4. 创建它的脚本可以在 php.ini 中完成。它可以用任何你想要的语言来完成,只要它获得正确的访问权限,这并不重要。

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

请注意 open_basedir 可能会给您带来一些麻烦,请确保排除正确的路径(或禁用它)。

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

【讨论】:

  • 感谢您提供的信息,galchen。我确实需要为每个域设置不同的用户。我喜欢您执行获得 root 访问权限的 PHP 脚本的想法。我认为 suPHP 有助于促进这一点,对吧?我会调查的。是的,我注意到 open_base_dir 限制并添加了适当的路径到 vhost.conf 文件。再次感谢您的详细回复!
猜你喜欢
  • 2016-04-17
  • 2013-11-20
  • 2012-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2012-10-09
相关资源
最近更新 更多