使用git aws.push访问phpmyadmin config.inc.php的权限

使用git aws.push访问phpmyadmin config.inc.php的权限,git,amazon-web-services,phpmyadmin,Git,Amazon Web Services,Phpmyadmin,问题:每个git aws.push都会将phpMyAdmin/config.inc.php上的权限更改为666,需要为555 概述:我有一个带有PHP/MySQL的Amazon AWS elastic beanstalk站点。在站点文件中,我在/phpMyAdmin文件夹中有phpMyAdmin。我的桌面计算机正在运行windows 7。我已经做了以下工作: 编辑config.inc.php以包含连接到my MySQL dB所需的字段 已执行git添加以置于版本控制之下 执行git提交以提交文

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

概述:我有一个带有PHP/MySQL的Amazon AWS elastic beanstalk站点。在站点文件中,我在/phpMyAdmin文件夹中有phpMyAdmin。我的桌面计算机正在运行windows 7。我已经做了以下工作:

  • 编辑config.inc.php以包含连接到my MySQL dB所需的字段
  • 已执行git添加以置于版本控制之下
  • 执行git提交以提交文件
  • 执行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

git config--local core.filemode false

阅读这篇文章,可能会有所帮助:

这样做的作用:告诉Git忽略chmod更改,从而防止添加/提交仅更改其权限而非内容的文件。这实质上意味着您使用CHMOD的文件永远不会被推到回购(因为它从不添加/提交)——除非在实际情况下本地更改内容,否则回购版本将保持不变,在这种情况下,Git将看到它并认为它是一个已更改的文件,用于添加/提交。 我希望这是有道理的

任何时候更改文件的内容,都很可能需要ssh到AWS以chmod文件。服务器端Git钩子可能会为您解决这个问题(自动chmod 755您的配置文件)


对文件(config.inc.php)的任何更改都需要后续操作才能执行更改。不幸的是,我在git BASH和我执行git aws.push的windows终端中尝试了git config--local core.filemode false和git config core.filemode false,但git一直在更新aws服务器上config.inc.php的权限。如果这对您不起作用,那么您可能需要检查服务器端git挂钩。您可以将它们设置为在收到推送后运行任何脚本(例如,在每次推送后都运行chmod'ing config.inc.php)。这可能并不理想,但目前可能是一个解决方案。谢谢,我会将此作为一个选项进行研究。不确定在AWS环境中从何处开始