[英]Using yiic to update application via github
我們有一個用Yii 1.1編寫的應用程序,我們維護和控制該應用程序和服務器的各個方面。 它存在於各種服務器上。 我們通過git在本地維護代碼庫,並發布到我們的GitHub存儲庫。 當我們推出更新或錯誤修復時,我們必須進入每個框並一次更新它們。 這只會越來越耗費我們部署的更多應用程序和服務器的時間。
我們希望通過admin部分遠程完成git pull
過程。 我們曾考慮過利用GitHub WebHooks功能,但我們不希望它如此自動化。 我們要控制哪些應用程序獲取更新。 接下來,我們考慮使用將存在於代碼庫中並可以運行shell git pull
腳本的yiic
命令。 在整個過程中,安全是頭等大事。
如果我們創建一個yiic類來處理已定義的git
命令,並帶有從控制器向yiic
命令進行身份驗證的安全令牌層,那么您是否會遇到安全問題? 也許有人做了類似的事情,可以對他們的方法和問題有所了解?
我創建了一個管理屏幕,在這里我可以輕松地讓每個用戶從個人開發環境中的分支切換(無需訪問服務器)。 我是通過在PHP中使用exec
以及使用git客戶端鈎子(合並后)來完成此操作的, https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks更新所有文件夾和文件的權限(您無法確定它們在拉動之后是否正確)。 對於合並等,我使用bitbucket API。
對於我們的活動環境和活動前環境,我們使用deploybot.com。 如果某個分支被更新,它將上傳文件。 實時環境會自動更新。 對於實時環境,我必須按下一個按鈕(它將自動執行此操作,因此將在星期一上班之前使用API進行此操作)。 如果只是拉,我會使用這樣的服務。 雖然它不拉,但是可以上載/刪除新的,更改的或刪除的文件。 然后,您可以在管理面板中添加一個按鈕,以進行api調用,從而允許deploybot部署代碼。 它更簡單,免費或非常便宜(取決於您的需求)
關於安全性。 我想這將取決於您的管理屏幕和github帳戶的安全性。 如果人們可以訪問您的github代碼,他們可以更改您的實時代碼,但這實際上始終是一個“問題”。 如果他們可以訪問您的管理屏幕,我想您有更大的問題,那么他們就可以提取代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.