使用git aws.push在phpmyadmin config.inc.php上的权限

时间:2013-07-26 16:45:10

标签: git amazon-web-services phpmyadmin

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

概述:我有一个带有PHP / MySQL的Amazon AWS弹性beanstalk站点。在站点文件中,我在文件夹/ p​​hpmyadmin中有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以从源代码管理中取出文件

然后我继续在另一个文件上执行edit / git add / git commit / git aws.push

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

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

1 个答案:

答案 0 :(得分:0)

试一试

git config --local core.filemode false

阅读此帖子,可能有所帮助:How do I make Git ignore file mode (chmod) changes?

这样做:告诉Git忽略chmod更改,因此阻止添加/提交仅更改了它的权限而不是内容的文件。这实际上意味着你正在使用chmod的文件永远不会被推送到repo(因为它永远不会添加/提交) - repo上的版本将保持不变,除非你在本地实际更改它的内容,在这种情况下Git会看到它并将其视为已准备好添加/提交的已更改文件。

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

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

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