2013-07-26 40 views
0

问题:每aws.push变化对phpMyAdmin的/ config.inc.php文件的权限为666,需要的git是555权限与git的aws.push的phpmyadmin的config.inc.php

概述:我有一个使用PHP/MySQL的Amazon AWS弹性beanstalk站点。在站点文件中,我在文件夹/ p​​hpmyadmin中有phpMyAdmin。我的台式电脑在运行Windows 7我已经做了以下内容:

  • 编辑config.inc.php文件,包括必要的字段连接到我的MySQL数据库
  • 进行添加的git版本控制
  • 下把
  • 执行git的承诺提交文件
  • 进行混帐aws.push到文件
  • 执行SSH移动到服务器到服务器执行CHMOD 755文件
  • 从浏览器和successf推出phpMyAdmin的ully连接

aws.push使上的config.inc.php的权限的任何后续GIT中被重置666,所以我可以与phpMyAdmin不再连接,直到我运行SSH并执行CHMOD

失败解决方法

  • 的.gitignore文件/ phpMyAdmin的文件夹中创建
  • 添加的config.inc.php到的.gitignore文件
  • 执行的git RM --cached的config.inc.php从源控制取出该文件

我然后继续执行编辑/ GIT中添加/ git的承诺/ GIT中aws.push在另一个文件

结果是/phpmyadmin/config.inc.php从服务器中删除,而不只是被忽略的推

期望解 /phpmyadmin/config.inc.php与权限的AWS服务器上当其他文件被更新并推送到服务器时保持在755处

回答

0

这给了一枪

git config --local core.filemode false

阅读该帖子,它可能会帮助:How do I make Git ignore file mode (chmod) changes?

什么这样做:告诉GIT中忽略文件模式的变化,从而防止加/提交该文件的只改变了权限,而不是内容。这基本上意味着你使用chmod的文件永远不会被推到repo上(因为它永远不会被添加/提交) - 除非你真的在本地修改它的内容,否则repo版本将保持不变,在这种情况下,Git会看到它,并认为它是一个已准备好添加/提交的已更改文件。

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

任何时候当你改变文件的内容时,你很可能不得不ssh进入AWS来修改文件。服务器端的Git挂钩可能会解决这件事情(自动搭配chmod 755你的配置文件。)

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

+0

是有道理的,任何更改文件(config.inc.php中)将需要跟进执行改变mod。不幸的是,我尝试了git config --local core.filemode false和git config core.filemode都在git BASH和windows终端中执行git aws.push,但git不断更新config.inc.php上的权限在AWS服务器上 – Cheesepipe

+0

拍摄:\如果这不适合您,那么您可能需要检查服务器端的Git挂钩。您可以在接收到推送后设置它们运行任何脚本(例如,在每次推送它时收到chmod'ing config.inc.php)。这可能不是理想的,但它可能是暂时的解决方法。 – kmatheny

+0

谢谢,我会考虑这个作为一个选项。不完全确定在AWS环境中从哪里开始 – Cheesepipe