怎樣使用git把程式碼搬到OpenShift?

9 / 14, 2013 伺服器 , 免費空間 , 網路 , 虛擬主機 , 雲端

我想大家自從上次的OpenShift WordPress教學後,對OpenShift的運作感到很好奇,覺得沒有FTP帳號到底怎樣修改代碼呢?我會在此文章詳細介紹一下git和怎樣使用這個系統把程式碼搬到OpenShift平台上。

git是一套程式碼管理系統,用來監測程式碼的變動,然後和遠端伺服器同步更新的工具。OpenShift就是利用了這套系統的同步更新功能來把程式放到他們的主機的。

首先,請大家安裝

git

Ruby

(這個是用來安裝OpenShift命令端管理程式的),這次的教學會以PollEndpoint作測試。

安裝完成後,請大家開啟Ruby命令端,以安裝OpenShift用戶端。

openshift-git-1

然後輸入

gem install rhc

以安裝OpenShift命令端管理程式。

openshift-git-2

等待他安裝完成就可以了!現在輸入這個指令:

rhc setup

你就會看見這個畫面

openshift-git-3

輸入您的OpenShift帳戶和密碼,然後等待他執行就可以了。

設定完成後,我們就要到OpenShift的管理頁面,找出你的git連線位置,並複製它。

openshift-git-4

然後開啟命令端,輸入:

git clone <剛才複製的git位置>

等待他設定完成就可以了。

openshift-git-5

然後你就會看見那些程式碼了!

openshift-git-6

每次你修改了檔案,要放上OpenShift的話,就開啟終端機,輸入:

cd <應用程式名字>
git add .
git commit -am "<在這裡說明一下你更新了什麼>"
git push origin master

就可以把更新放到OpenShift上了!

openshift-git-7

最後,祝大家使用愉快!有什麼問題可以在下面留言,我會盡快答覆。

  • 莊惠棋

    你好,想請教一下,我把所有設定都弄好了,也按照你的教學指示(我是用php+html+mysql),但他都會出現

    Not Found

    The requested URL / was not found on this server.

    但我的html有上傳成功阿

    這是為什麼?

    請指導下,謝謝

    • s3131212

      您好,請確認您 HTML 上傳路徑正確並且名為 index.html 喔

      • 莊惠棋

        感謝解答,我傳上去了
        想請教下,所以只能用index不能用其他檔名嗎?如果我做一個index.html+a.html( index可連結到a.html…
        這樣可行嗎?會不會a.html無法顯示阿?

        另一個問題是,我button的圖案一半無法顯示(.png),我看了之後發現他寫404 image not found
        但我的圖並沒很大阿,一個圖幾kb而已,也沒很多,應該不會超出限制才是,想問一下此事如何解決,我以重上傳好幾次…..

        • s3131212

          index.html 當做首頁檔名算是一種共識吧,如果真的不喜歡也是可以改,不過有點麻煩,還是建議直接用 index.html 當首頁

          對於 a.html 能不能顯示,我想你可能有些誤會,之前你輸入的網址應該是 “http:///rhcloud.com/" ,這類型的網址是「不指定檔案」,所以伺服器會抓 index.html 當做回傳,但是當你網址是 “http:///rhcloud.com/a.html" 時,代表你有指定一個檔案 a.html ,這時伺服器就會依照你所要求的檔案 a.html 去做顯示

          另外, 404 image not found 代表圖片不存在,可能是上傳沒有成功,或是檔案路徑寫錯了喔

          • 莊惠棋

            我圖檔和程式碼全在同一個資料夾

            而且程式碼也都同一種寫法

            但有些就是會顯示,有些就是不會,而且我上傳好多次了,請問有啥事我沒注意到的嘛?

            • 莊惠棋

              我試著把圖push上去,但他都會寫
              nothing to commit working directory clean
              這是甚麼意思?
              該注意甚麼?能指教下嗎,謝謝

              • 莊惠棋

                圖片改個名字,就傳上去了……..
                謝謝指教

              • s3131212

                抱歉昨天沒上線,恭喜你處理好了 🙂

  • Anonymous

    找到了!執行rhc setup時出現錯誤,解決辦法在這裡有寫:http://www.programerhome.com/?p=371

  • Anonymous

    Ruby命令端的版本太多了,到底要下載哪一個喔?

  • just

    very nice…

    thx and god bless you and the world…

    ^_^

  • mimigogo

    你好。貌似可以只用openshift + git操作资源上传下载,不安装openshift客户端…

    • s3131212

      應該要吧,至少我沒安裝的話沒辦法push

    • Licson Lee

      其實可以,不過設定就變得更麻煩。而且有了客戶端還可以直接操控Gears的資源呢!

  • 學校名字有動物

    我現在遇到一個問題

    請問要怎麼連到localhost …
    我是用python寫的網頁
    可是我不知執行之後,要怎麼在近端測試,看結果
    現在都只能上傳到openshift才能知道能不能執行
    感謝你們的熱心解答><

  • 學校名字有動物

    還是一樣,No~~~~
    我也去openshift的官網問看看好了
    我有截一些圖,不知道哪裡出錯了
    http://ppt.cc/Ev6i
    http://ppt.cc/1p0p
    http://ppt.cc/EvDe
    非常感謝你們的幫忙!!

    • 學校名字有動物

      OK
      問題解決了!
      在使用者目錄下有個.ssh資料夾
      我之前都把鑰匙放在裡面
      後來發現Git資料夾也有一個.ssh
      放進去就可以了…
      感謝你們的幫忙囉!!
      有問題再向你們請教

  • 學校名字有動物

    你好~~
    網頁的部分了解了,謝謝!!
    我現在遇到另外一個問題
    他說我權限不夠
    Please make sure you have the correct access rights
    and the repository exists.
    那個rhc setup是用出鑰匙嗎,我有在openshift網頁上看到有打出來
    可是要git clone的時候還是說我權限不夠
    我有試著用puttygen自己弄一把覆蓋.ssh裡面的id_rsa
    還是一樣說權限不夠,請問我哪裡出錯了~~~~
    感謝你的解答!!

    • Licson Lee

      這個應該是你的資料夾權限問題。試試以管理員的身分執行cmd再看看。

  • 學校名字有動物

    你好~~~
    我到git clone那一步的時候
    它總是顯示 ‘git’ 不是內部或外部命令、可執行的程式或批次檔。
    請問我該如何是好
    另外再問一下 這些弄好之後要怎麼做成網頁
    類似這個 http://python-cadp13ag3.rhcloud.com/
    感謝你的解答!!

  • 阿法

    現在的openshift好像變的完全不一樣了!?
    很多步驟都不盡相同><

    • Licson Lee

      其實只是他的控制台轉了版面,步驟還是一樣的喔!