0

问题:每个 git aws.push 将 phpMyAdmin/config.inc.php 上的权限更改为 666,并且需要为 555

概述:我有一个带有 PHP/MySQL 的 Amazon AWS 弹性 beanstalk 站点。在站点文件中,我在文件夹 /phpmyadmin 中有 phpMyAdmin。我的台式计算机正在运行 Windows 7。我已完成以下操作:

  • 编辑 config.inc.php 以包含连接到我的 MySQL dB 的必要字段
  • 执行 git add 以置于版本控制之下
  • 执行 git commit 以提交文件
  • 执行 git aws.push 将文件移动到服务器
  • 对服务器执行 ssh 以对文件执行 chmod 755
  • 从浏览器启动 phpMyAdmin 并成功连接

任何后续的 git aws.push 都会导致 config.inc.php 上的权限重置为 666,因此在运行 SSH 并执行 chmod 之前,我无法再连接 phpMyAdmin

失败的解决方案

  • 在 /phpmyadmin 文件夹中创建 .gitignore 文件
  • 将 config.inc.php 添加到 .gitignore 文件中
  • 执行 git rm --cached config.inc.php 将文件从源代码管理中取出

然后我继续对另一个文件执行编辑 / git add / git commit / git aws.push

结果是 /phpmyadmin/config.inc.php 已从服务器中删除,而不仅仅是被忽略以进行推送

所需解决方案 /phpmyadmin/config.inc.php 在 AWS 服务器上,当其他文件更新并推送到服务器时,权限保持在 755

4

1 回答 1

0

试一试

git config --local core.filemode false

并阅读这篇文章,它可能会有所帮助:如何让 Git 忽略文件模式 (chmod) 更改?

这是做什么的:告诉 Git 忽略 chmod 更改,因此防止添加/提交该文件,该文件只更改了它的权限,而不是内容。这实质上意味着您使用 chmod 的文件永远不会推送到存储库(因为它从未添加/提交)——除非您实际在本地更改它的内容,否则存储库上的版本将保持不变,在这种情况下 Git将看到它并认为它是一个准备好添加/提交的更改文件。

我希望这是有道理的...

每当您更改文件的内容时,您很可能必须通过 ssh 进入 AWS 以对文件进行 chmod。服务器端 Git 挂钩可能会为您解决此问题(自动 chmod 755 您的配置文件。)

http://git-scm.com/book/en/Customizing-Git-Git-Hooks#Server-Side-Hooks

于 2013-07-26T18:47:03.167 回答