2013-03-21 97 views
3

我最近已將其轉換爲Amazon的Elastic Beanstalk,這一直很棒,但我遇到了一個問題,我一直無法修復或找到不錯的解決方案。Windows:在部署到Amazon Beanstalk之前設置PHP文件權限

當通過GIT與 $ git的aws.push部署

我的文件部署,但我的所有文件夾和文件不具有正確的權限。目前使用xampp爲本地開發運行Win 8。例如,在最近的WordPress部署中,我所有的文件夾都是777,一旦部署到beanstlak。它也是文件所在的NTFS分區。

,這很容易通過SSH並運行:

$ sudo su 
$ find /var/www/html/ -type d -exec chmod 755 {} \; 
$ find /var/www/html/ -type f -exec chmod 644 {} \; 

但是我寧願修復我的權限,上傳之前,但我不認爲這是可能與Windows。我確定我可以設置一個腳本或某種類型的服務鉤來在部署中運行這些腳本,但我希望可能有更簡單的方法。

從社區的任何見解設置Windows文件權限以匹配Apache的?

回答

7

實際上,在您的代碼被提取到您的實例之後但在它被視爲「已部署」之前,設置掛鉤來修復權限並不困難。您可以創建一個名爲.ebextensions/00permissions.conifg的文件,只要它位於擴展名爲.config的正確文件夾中,該名稱並不重要 - 配置腳本按字母順序執行。內容是這樣的:

container_commands: 
    00fix_permissions_dirs: 
    command: "find . -type d -exec chmod 755 {} \;" 
    ignoreErrors: true 
    01fix_permissions_files: 
    command: "find . -type f -exec chmod 644 {} \;" 
    ignoreErrors: true 

註記container_command默認目錄是部署文件解壓到該目錄,因此無需設置明確的路徑。

您可以在Elastic Beanstalk文檔中看到有關kinds of commands you can run on your instances的更多信息。

+0

第一個挑戰是在Windows中創建一個名爲「.ebextensions」的文件夾:D – TimoSolo 2013-09-16 11:05:38

+0

Windows將讓您創建一個名爲.ebextensions的文件夾。尾點將自動消失。魔法! – rjdown 2013-10-29 17:12:29

+0

「請注意,container_command的默認目錄是部署文件已提取到的目錄,因此不需要設置顯式路徑」。非常感謝你,這個小短語幫了我很多。爲什麼在地球上他們沒有在文檔中寫這篇文章超出了我的想象。 – 2015-02-17 00:08:53

0

container_commands: 00fix_permissions_dirs: command:「find/var/app/ondeck -type d -exec chmod 755 {} \;」 ignoreErrors:true 01fix_permissions_files: command:「find/var/app/ondeck -type f -exec chmod 644 {} \;」 ignoreErrors:true

這將更改應用程序的文件權限。目前,當應用程序完全部署時,沒有辦法運行命令,但是您可以利用「ondeck」文件夾,該文件夾是beanstalk在部署應用程序文件之前放置的文件夾。

相關問題