顯示具有 apache 標籤的文章。 顯示所有文章
顯示具有 apache 標籤的文章。 顯示所有文章

2010年5月2日 星期日

安裝與設定SVN server

當常常會在不同地方工作時,會常常需要把手中的資料在每台電腦上同步後才能繼續工作
而對於寫程式來說,更加需要版本控管來減低把自己的code改爛後無法復原的情況發生

實驗室的學長以前架了CVS server, 但其實CVS已經越來越少人在用了..
大家都改用SVN, 雖然不知道主要原因是甚麼, 但應該至少是用起來比較方便

記錄一下如何架設SVN

基本上要架設SVN, 都會一並使用svn server端跟client端
最普遍的, server 端使用Subversion, 而client端則使用TortoiseSVN

先把TortoiseSVN安裝好後
我們再來安裝Subversion (Subversion需配合Apache使用, Apache的安裝請自己再找文章吧)

安裝完Subversion後, 請把目錄資料夾裏 Subversion/bin 底下的
mod_dav_svn.so
mod_authz_svn.so
libdb4X.dll <--因版本不同, X可能會不一樣, 我下載的版本就是libdb44.dll
libeay32.dll ssleay32.dll
這5個檔案copy到Apache底下modules的目錄裏

然後開啟 Apache底下conf目錄裏的 httpd.conf 檔案apache的設定
找到以下這兩行
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
然後把其前的 '#' 刪掉, 讓apache執行時讀取這兩個模組

接著, 再加上下面這兩行指令
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

再來, 我們需要設定SVN存放版本資料的位置,
繼續在httpd.conf裏加入以下
####SVN設定###########
<Location svn/code>        #設定網址, ex: http://localhost/svn/code
DAV svn
SVNPath c:/svn/myCode #設定SVN資料在本機裏的絕對路徑, 待會我們再來建這個檔


# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"

#進行帳號驗證時的帳號、密碼資料
AuthUserFile "c:/svn/myCode/conf/passwd.ini"

# only authenticated users may access the repository
#操作時要進行帳號驗證,拿掉此行就不會進行驗證
Require valid-user

# our access control policy
# authz.ini 是設定帳號對各 Project 可讀/寫權限的設定檔
AuthzSVNAccessFile "c:/svn/myCode/conf/authz.ini"
</Location>

儲存好之後, 我們接下來使用
按照剛剛打的路徑建立一個 C:/svn/myCode 的資料夾, 以放置SVN的資料

成功建立repository後, myCode內應該會有以下檔案
因為要提供網路存取的關係, 需要把這個c:/svn 資料夾共用出去, 使用者為everyone


剛剛設置 httpd.conf 時應該有注意到我們有設SVN的存取密碼及權限檔
現在先利用Apahce來建立密碼檔 - passwd.ini
開啟cmd, 輸入
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd.exe" -c passwd.ini [帳號]
輸入帳密後, 在apache/bin 裏應該就會產生一個passwd.ini的檔案
裏面就會有剛建的帳號跟加密過的密碼
把passwd.ini 放到 c:/svn/myCode/conf/passwd.ini

接著我們建立存取權限的檔案authz.ini
自己手動新增這個檔, 然後修改內容為以下
# 先定義群組
[groups]
developer = user1,user2,user3
art = user4
everyone = *

# 預設拒絕所有人進入瀏覽
[/]
* = # *為annoymous, *= 即匿名不可存取
# 設定儲存庫訪問權限,語法:[儲存庫:專案路徑]

[ProjectName:/]
@developer=rw #可讀寫
@art=r #僅可讀取

存檔.

以上步驟皆完成後, 現在便來重開Apache, 更新設定吧.

最重要的時刻來了, 我們連到 http://localhost/svn/myCode
如果SVN成功的話, 將會出現 Revision 0:/ 的畫面


如果不成功的話...可能就要檢查:
1. svn的資料夾的共用設定
2. 在httpd.conf設置讀入模組那4行程式的順序
3. 環境參數中是否有Subversion的路徑

再不行的話, 我也不知道了...再砍掉重練吧

2010年4月4日 星期日

架端web server不能連結至localhost的問題

之前在windows vista上架了一個Apache2.2 http server.
剛架設完後, 當然是很興奮地開啟 http://localhost
來測試一下有沒有出現"It works!"的畫面呀

因為再之前也有架過, 即使在httpd.conf設置後路徑前, 大概至少也看得到it works吧
但我錯了, 事情絕非單純

我開始http://localhost後
IE竟然是顯示404 page not found的頁面
這代表連不到這一頁.


於是便進行了以下測試

  1. 確認Apache monitor有否正常啟動apache server, 亮綠燈 (綠燈呀! 但如果是紅燈但restart後也一直不能正常運作, 可能就要重灌一次apache了, 因為可能灌的時候某些程序出錯了)
  2. 檢查Apache目錄裏htdocs裏是否有index.html (有的, 所以應該是路徑設定有問題)
  3. 再檢查conf裏的httpd.conf,檢查一下各種Directory跟root的路徑有沒有跟真實檔案位置不一樣,這有可能是因為在案裝過程中打錯了路徑或甚麼的(都正確呀,見鬼了@@)
  4. 然後再檢查防火牆跟防毒的設定,確定沒有因為中毒或奇怪地被設定把自己的IP位址給封鎖掉...orz(都好好的呀...)

真是百思不得其解,但後來發生
我打自己的IP(http://140.xxx.xxx.xxx)卻是成功的出現It works!
所以如果跟我遇到同樣的情況,上面檢查的第1,2,3點,應該都不用進行了
基本上應該是localhost這個遮罩沒有對應到本機的IP

後來我去請教高手
高手請我輸入 http://127.0.0.1/ 試試看
結果真的成功,証明應該是跟Apache的設定沒關係
然後高手判斷這應該是localhost沒對應到本機IP的問題

他告訴我開啟
windows/system32/drivers/etc/hosts 這個檔案
然後加上一行
127.0.0.1 localhost
意即把IP對應到後面的host name

儲存後我再開啟 http://localhost/

It works了耶!! 太感動了QQ
雖然我也不知道為甚麼我電腦原本的設定沒有把127.0.01跟localhost對應起來
不過以後再遇到這種不能開localhost的情況, 大概就可以試這些方法吧.

2009年3月8日 星期日

[freeBSD] 自動備份http log檔

作為網頁伺服器,每天會有來自不同地方的數以百計的人來訪
httpd.acess-log或httpd.error-log分別紀錄下存取和錯誤的log歷史
如此日漸增大的檔案,必須要進行分割備份以避免同一個檔案無限量增大

在此使用/etc/newsyslog.conf 來設定自動備份

使用編輯器把newsyslog.conf打開

加入下面兩行指令
/var/log/httpd-access.log 644 7 * $W0D1 J /var/run/httpd.pid
/var/log/httpd-error.log 644 7 * $W0D2 J /var/run/httpd.pid


※將 /var/log/httpd-access.log 這個檔案做備份,
備份後的檔案名稱像這樣 httpd-access.log.0.bz2 。
備份後該檔案的權限是 644,
最大的數字到 7,也就是最多8個檔案,
*星號代表不限制檔案多大時要備份,
選在每週日半夜 1 點時備份,
並將該檔以 bzip2 壓縮。
在備份完後,要將 /var/run/httpd.pid 所記錄的 Process ID 重新啟動。


以上參考自twbsd.org網頁伺服器篇
Powered By Blogger

Label Cloud

2009 (1) 不能連localhost (1) 內嵌音訊 (1) 求職 (1) 面試 (1) 音樂 (1) 動畫師 (1) 帳號管理 (1) 排程 (1) 畢展 (1) 創意市集 (1) 惡意程式 (1) 電腦動畫 (1) 權限管理 (1) adobe (1) android (4) animation (1) animator (1) apache (3) art (5) art taipei 2008 (1) audio (2) bbs (1) birthday (1) black and white (1) browser (2) career (2) certification (1) cgw (1) cinematography (1) code (3) Collie (1) color (2) command (16) competition (1) computer science (3) connection (1) cover (1) crafyJS (1) creative (1) CSS (1) DBN (2) design (7) developer (1) display (1) drawing (1) eclipse (3) embed (1) engine (1) EntityJS (1) exception (1) exhibition (1) flower (1) frame (1) freebsd (11) french (1) friends (3) function (1) game (1) google (2) graphic (3) html (2) HTML5 (1) https (1) illustrator (1) image processing (1) interactive storytelling (1) internet (3) interview (1) introduce (1) ip (1) japan (1) java (4) javascript (3) JIT (1) jmonkey (1) job (1) jquery (1) LAMP (1) LimeJS (1) linux (8) liquid galaxy (1) ListView (1) localhost (1) log (1) mail (1) marquee (1) midi (1) mime-type (1) mis (1) MIT (2) mo-cap (1) mobile (1) Modernizr (1) motion capture (1) movie (1) music (3) narrative (2) NCCU (3) news (1) note (10) originality (1) otaku (1) painting (4) performance (1) photography (2) photoshop (7) php (1) player modelling (1) poster (1) postfix (1) programming (5) QuarkJS (1) resource (1) schema (1) scroll (1) self aware (1) semantic (1) server (1) share (1) sketch (2) software (4) solve (2) Sonivox (1) speaking (1) ssl (1) SSLPeerUnverifiedException (1) streaming (1) Subversion (1) sunspider (1) SVN (3) svn server (1) system (1) taipei (1) test (1) tfam (1) tool (1) TortoiseSVN (1) tutor (1) ubuntu (3) update (1) uri (1) video (1) vim (1) w3c (1) wap wcss css css2.0 (1) web (8) WebGL (1) webkit (2) well-form (1) wiimote (1) wiiusej (1) workshop (1) xhtml (1) xml (2)