需要基本设置指导

需要基本设置指导

我设置了一个 CentOS 来使用 Apache 运行我们公司的网站。Apache 以用户 的身份运行apache。现在,要使用 git 更新我们的网站代码,我设置了一个用户 say sumit,并创建了一个执行该操作的 shell 脚本git pull(我认为我们可以使用rsync,但我不确定如何使用它)。

现在,我将此 shell 脚本设置为及时运行,并且它运行良好。但是,当它下载更改时,它会将文件所有者更改为apache:apachesumit:sumit因为这是下载时使用的用户。我尝试放入chown我的 shell 脚本,但它不会更改用户,因为它需要sudo用户。

我如何确保使用git 1. 我可以管理权限(因此所有可写文件夹都不会改变或坚持我的需要)2. 下载的新文件保留给 apache。

哦,我确实尝试过使用用户运行 cron ,但是由于被 shell 禁止,apache所以没有用。apache

答案1

您的问题在于,您使用 git 作为部署工具,但事实并非如此。Git 用于版本控制,仅此而已。当您想要将代码部署到某个地方时,您应该使用脚本或预构建的产品来检出正确的分支、复制相关文件、编译可能需要编译的任何内容,并在您的例子中设置权限。

有很多方法可以做到这一点。有商业构建服务器,如 TeamCity 或 Jenkins/Hudson(以及更多类似服务器),它们具有各种用于部署的内置功能。

或者,您可以使用 git 服务器上的 git hook 来调用一个脚本,该脚本会为您执行复制和权限设置。此 hook 显然需要以具有正确 chown/chmod 权限的用户身份运行,但您可以使用 ssh 密钥安全地实现此操作。

相关内容