搭建遠程編譯伺服器
1. 如何搭建伺服器
首先打開控制面板,選擇「程序」,雙擊「打開或關閉Windows服務」,在彈出的窗口中選擇「Internet信息服務」下面所有地選項,點擊確定,開始更新服務。打開瀏覽器,輸入「localhost」回車,如果出現IIS7歡迎界面,說明啟動成功。
伺服器能夠響應終端的服務請求,並進行處理。我們在上網的時候是不可能直接將網路接入互聯網的,我們都需要通過伺服器來連接網路,只有伺服器響應你的聯網請求,並且進行處理以後才可以聯網;存儲的功能,伺服器的存儲空間一般比較充足,可以存儲非常多的信息。
伺服器部署注意事項
在許多伺服器機架,電源分配單元(PDU)的部署僅僅只提供了數量有限的輸出口,所以一台已經被大量使用的機架可能沒有足夠的開放式PDU插座以容納更多額外的伺服器,或無法很方便的為伺服器電源線安排可用的插座。
用戶可能會需要重新安排一些線纜,而只能通過拔掉伺服器的電源了,而這會造成系統的停機,故而這就需要運營團隊進行提前安排了。
2. 如何在mac下遠程搭建git伺服器
方案一 基於SSH直接搭建
Git支持的協議主要是四種:
本地: 需要文件共享系統,許可權不好控制
HTTP:速度慢
SSH:同時支持讀寫操作,不支持匿名的讀取(Git默認協議)
GIT:最快
從搭建的難易程度和特點綜合篩選,最合適的還是ssh,並且大部分伺服器上基本都有ssh服務,所以省去了不少麻煩。一個最基本的思路是給每一個人一個ssh帳號,這樣大家就可以通過用戶名和口令來訪問了,但是顯然這不是一個好的選擇,這個做法有些多餘,並且對於repo的許可權很難管理。
在使用Github的時候,會利用rsa.pub公鑰/私鑰的方式,這樣在服務端擁有用戶的公鑰(*.pub)之後就可以,跨過繁瑣的口令,直接認證提交了,而服務端也會根據不同的用戶身份,對其許可權有著更加靈活的管理。因此也採用這種方式。
服務端
為了使遠程庫訪問更加直觀,先在伺服器上創建一個名為git的賬戶,這樣以後clone的時候就如下面的格式了:
git clone git@server:some.git
創建新的用戶,創建repo等目錄
$sudo adser git
$su git
$cd ~
$mkdir repos
在HOME下的.ssh目錄,如果沒有則創建,創建一個authorized_keys文件,這個文件就是用來管理所有git用戶的公鑰的,也就是這裡面的用戶對於項目有著R+W的許可權。
客戶端
對於每一個客戶端,需要生成一對密鑰和公鑰,如果是Github用戶,那麼.ssh目錄下,一定有id_rsa.pub和id_rsa兩個文件,其中第一個是系統生成的公鑰,另一個是自己要保存好的密鑰。如果沒有的話,可以在終端執行:ssh-keygen來生成,完成後,將自己的公鑰提交給管理員,這就是一個注冊的行為。
完成
最後一步,管理員將團隊成員的公鑰添加到authorized_keys中,比如將同學susie加入:
$ cat susie.pub >> authorized_keys
至此,大家可以通過git@server:repos/some.git來訪問公共的版本庫了。
問題
安全問題,成員可以登錄git用戶的shell,細節許可權如分支等不好控制
管理麻煩,新建repo,或者增加成員比較麻煩,尤其是修改的時候
方案二 使用Gitolite服務
Gitolite 也是基於SSH協議構建的方便管理git repo的應用,可以通過其源碼安裝.
安裝
安裝按照官方給定的文檔就可以輕易的實現:
$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub
如果執行最後一條命令的時候,gitolite不識別,則可以通過下面兩種方式解決:
將gitolite添加到PATH裡面
通過$HOME/bin/gitolite setup -pk YourName.pub 執行
至此,gitolite在服務端,搭建完畢,會發現此時HOME目錄下增加了一個文件projects.list和一個目錄repositories,後者就是我們的版本倉庫了,每當新建repo的時候,就會在其中創建。
使用
是時候說一下gitolite的管理模式了,他會創建一個gitolite-admin的repo,管理員就是通過像這個repo提交配置文件而實現對git伺服器的控制的。
首先,將這個repo導入到我們的workspace:在此之前,需要配置本地的ssh,gitolite要求管理員的本地密鑰和其注冊公鑰的名字一致,比如安裝的時候指定 -pk後面為 admin.pub 則管理員本地需要由admin對應的私鑰。我們可以通過~/.ssh/config來進行配置(註:有些系統可以用conf,Mac OSX 下無效,只能用config).
host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin
這樣,當訪問gitolite的時候就會自動根據配置文件執行,配置完成後可以根據下面的命令,將gitolite-admin轉移到本地。
git clone gitolite:gitolite-admin.git
克隆完成後,可以發現,gitolite-admin下面有兩個目錄,其中conf保存配置文件,可以通過編輯裡面的gitolite.conf文件,管理git伺服器,keydir目錄保存用戶的公鑰pub文件。
當講修改後的repo 提交的時候,gitolite就會自動的應用這些配置,管理過程就方便了很多。
配置規則
打開gitolite.conf文件可以看到其中的示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:
repo foo
RW+ = alice
RW = bob
R = carol
上面的配置文件就是新建了一個repo foo,並且添加了三位項目成員,每一個人的許可權不同。提交push後,管理便生效了。
可視化
可能會需要一個web界面來管理這些項目,目前知道的有三種方式:
git源碼中自帶的組件,cgi腳本實現,使用gitolite服務
gitlab開源框架,基於ROR,新版本不再使用gitolite服務
FB開源php框架 phabricator,功能高端上檔次
3. 用伺服器做在線編譯器
如果是針對傳統使用方法的編程語言實現一個的話涉及的內容很雜,包括:
Web伺服器+Web伺服器與後端程序交互的組件(這個可以用現成的,我用的是nginx+FCGI)
後端程序
後端核心就是一個類似調用系統給的類似execl的API執行一下對應編譯工具,用這個API時還得精心處理一下管道,把輸出內容導出來顯示回網頁。
但是因為這類程序和OJ一樣,是網路上的公共服務而且居然還允許用戶上傳代碼編譯執行,所以問題主要集中在安全處理上,而且安全問題的處理高度依賴操作系統。
以linux為例,安全方麵包括但不僅包括以下內容:
依賴環境構建、沙盒
運行身份,包括GID、UID
資源限制,包括socket、文件操作、核心轉儲大小、文件數、子進程數等等
syscall限制
執行時間限制,包括運行時間和CPU時間
文件系統壓力
Windows下是另一堆問題要解決,比Linux復雜得多(也許是我不太會用Windows)。
我認識一人,自己實現了一個類似Haskell的東西,有和Go Playground差不多的在線運行網頁,我問他怎麼那麼快把那麼多東西都搞完了,他說,「整個語言就是用JS實現的,所以有瀏覽器就能運行,不需要後端」,這也是一種思路。
天互數據
4. Windows下寫的代碼如何上傳到unix伺服器實現遠程編譯
遠程編譯,全自動返回結果到客戶端,不可能的,無法實現。
先不說開發語言的局限性和跨平台。。。結果全自動返回都沒法做的。
5. 如何在 SSH 下遠程使用 IDE 編譯和調試
在 SSH 下遠程使用 IDE 編譯和調試步驟如下:
本地機安裝運行xming,運行putty,設置putty的Enable X11 forwarding
跳板機上解壓一個eclipse cdt,目錄無所謂,哪有許可權哪方便就丟哪,這解壓到/opt目錄,修改自己主目錄下的.profile文件,添加eclipse的執行文件目錄到PATH環境中
putty用ssh登錄到跳板機,直接輸入命令eclipse &運行
至於eclipse的remote gdb就直接貼網上的了
linux下用eclipse和gdbserver遠程調試嵌入式linux上(目標機)的程序_BBKK_新浪博客
默認的xming顯示出來的界面可能字體會比較小,修改啟動參數,在後面加-dip 100
有時會需要開多個session,或者還得用putty連開發板,這樣用putty會開很多個窗口出來,推薦一個mtputty,可以把putty當作標簽顯示,切換方便很多,看起來也舒服很多
再繼續就是本地和跳板之間的文件共享傳輸了,在跳板機上配置samba伺服器,本地直接映射網路硬碟,訪問跳板機跟訪問本地硬碟一樣方便,如果開機夠快而且伺服器從不關機的,還可以勾選登陸時重連
6. 如何搭建遠程SVN伺服器(開發人員在不同地點,希望可以共享代碼)
首選需要假設在互聯網環境中的一台主機,有獨立的ip地址。
然後根據操作系統的不同,安裝相應的svn server。比如windows環境下,可以安裝visualsvn server,有免費的版本可用。類linux下可用的也不少,可以上svn官網去看。包括推動svn發展的公司都有自己出品的windows/linux 版本的svn server版本。
7. 怎麼用eclipse搭建遠程伺服器配置
eclipse集成maven後可以用maven命令把web項目自動部署到tomcat,具體步驟如下
一、修改tomcat-users.xml配置文件打開tomcat管理用戶,配置文件位置在tomcat目錄/conf下。修改如下圖
二、配置maven的settings.xml配置文件,添加server節點指定伺服器的用戶名、密碼,用戶名、密碼要與tomcat-users.xml文件中配置的用戶名、密碼一致。配置如下
三、打開項目的pom文件,在plugins tab中添加tomcat-maven-plugin,然後點擊pom.xml tab找到添加的tomcat-maven-plugin添加configuration配置,如下
url屬性值為tomcat的manager頁地址,server屬性的值與settings.xml文件中配置的server的id一致,path即發布的應用名稱。
經過上邊的配置以後已經滿足遠程部署的要求,下邊說一下eclipse中指定遠程部署的步驟
一、首先啟動tomcat
二、在eclipse中選擇所要部署的project右鍵,點擊Run Configurations
三、在彈出的屬性頁中的Goals屬性設為tomcat:deploy然後點擊run即可,發布成功後控制台會提示Build Success。如下
8. 自己如何搭建伺服器。
1、打開控制面板,選擇並進入「程序」,雙擊「打開或關閉Windows服務」,在彈出的窗口中選擇「Internet信息服務」下面所有地選項,點擊確定後,開始更新服務。
(8)搭建遠程編譯伺服器擴展閱讀:
入門級伺服器所連的終端比較有限(通常為20台左右),況且在穩定性、可擴展性以及容錯冗餘性能較差,僅適用於沒有大型資料庫數據交換、日常工作網路流量不大,無需長期不間斷開機的小型企業。
不過要說明的一點就是目前有的比較大型的伺服器開發、生產廠商在後面我們要講的企業級伺服器中也劃分出幾個檔次,其中最低檔的一個企業級伺服器檔次就是稱之為"入門級企業級伺服器",這里所講的入門級並不是與我們上面所講的"入門級"具有相同的含義,不過這種劃分的還是比較少。
還有一點就是,這種伺服器一般採用Intel的專用伺服器CPU晶元,是基於Intel架構(俗稱"IA結構")的,當然這並不是一種硬性的標准規定,而是由於伺服器的應用層次需要和價位的限制。
9. 遠程伺服器如何搭建網站
遠程伺服器搭建網站,需要在伺服器上配置好IIS,這個是運行ASP網頁的環境,如果你的網站是PHP的,要安裝阿帕奇運行環境,如果你的網站是JSP的,要安裝tomcat環境.
安裝好網站程序運行環境後,就在某個盤里建個文件夾,專門用來放網站程序..但不要放在C盤.
然後新建FTP帳號,使用FTP工具上傳網站程序到網站文件夾里.
具體步驟:
1、在遠程伺服器上先配置好PHP的運行環境,或者用XAMPP環境包也行。
2、建立站點,把路徑指向你的php網站。
3、如果有域名的話,再把域名綁定上去。
基本上就這幾個大概步驟。