2013-07-26 41 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