linux程式開發伺服器環境搭建

來源:互聯網
上載者:User

程式開發伺服器環境搭建

  • 目的:在Linux平台上搭建一個協同開發工作環境
  • 軟體:Linux 2.6 + Apache2 + PHP4.x + Mysql5.x; subversion1.3.1 + mantis1.0.2
  • 基本思路:
    • 使用LAMP搭建一個Web介面,便於管理
    • 使用subversion進資料列版本設定
    • 使用trac進行bug(缺陷)跟蹤(也可選用mantis)。

一、安裝軟體
    在linux下常用的安裝方式是使用rpm包,我們選用yum(或者apt-get)工具來解決包之間的依賴關係,具體如何用法,這裡不再贅述,不懂得問 一下Mr. Google吧。如果你覺得自己用tar包,編譯安裝的方式比較爽,你也可以試一下,不過不推薦喲,別人幫你做好了,幹嗎還要費那個勁。我這裡給出一個自 動化的指令碼,可能裡面某些軟體在你機器上的配置找不到,那牛需要你到網上查一下,把相應倉庫的地址加入到yum的設定檔當中。

#!/bin/bash

# install python
yum -y install python.i386 python-devel.i386 python-lxml.i386 python-sqlite.i386 python-clearsilver.i386 swig.i386 python-setuptools.noarch

# install subversion
yum -y install subversion.i386 subversion-devel.i386
 
# install clearsilver
yum -y install clearsilver.i386 clearsilver-devel.i386

# install sqlite
yum -y install clearsilver.i386 clearsilver-devel.i386

# install LAMP
yum -y install httpd.i386 mod_auth_mysql.i386 mod_dav_svn.i386 mod_log_sql.i386 mod_authz_ldap.i386 mod_python.i386 mod_ssl.i386

yum -y install MySQL-python.i386 mysql.i386 mysql-devel.i386 mysql-server.i386

yum -y install php-xml.i386 php.i386 mod_suphp.i386 php-devel.i386 php-ldap.i386 p-readline.i386

# install optional
yum -y install enscript.i386

# install trac
yum -y install trac.noarch

# install mantis
yum -y install mantis.noarch

上述軟體安裝完成之後,預設情況下trac被安裝在/usr/share/trac下,其他應該在/bin或者/usr/bin目錄下。  
軟體安裝完成之後,下面就開始我們的平台搭建。我們要建立兩個工程projectA和projectB,使用WEB介面進行管理。
二、搭建平台

  • 建立subversion倉庫並配置subversion

假定倉庫的地址為 /work/repos,我們進行如下的操作:

#svnadmin create --fs-type fsfs /work/repos/projectA
#svnadmin create --fs-type fsfs /work/repos/projectB

經過上面兩步,我們已經建立了兩個倉庫,下面是要對它進行一些設定了,主要就是存取權限之類的以及服務運行方式。關於subversion的用法,可以到其網站或者svn中國上找本文檔看看。

  • 許可權的設定

主要設定 /work/repos/ProjectA/conf/下面的passwd和authz檔案,具體如何設定請查看svn的協助。

  • 服務運行方式

subversion有三種運行方式,本地,svnsever,以及同apache整合,我們要使用的是最後一種方式,後面會具體介紹如何配置。

  • 建立trac環境並對其進行配置

接下來我們要建立trac的環境,假定我們安裝到/work/trac-env/目錄下,使用如下命令:

#trac-admin /work/trac-env/projectA initenv
#trac-admin /work/trac-env/projectB initenv

在執行上述命令的時候會問你svn倉庫的地址,告訴它在/work/repos/projectA,/work/repos/ProjectB下面就是 了,如果你弄錯了也沒有關係,因為可以手動設定的,而且很簡單哪。設定檔放在了conf/trac.ini下,具體配置選項的意義和用法,這裡也不講, 參考其首頁上的說明。

  • 配置apache

我們的主要精力放在了如何把subversion以及trac和apache結合起來,提供一個web管理介面上,所以這部分是我們的重頭戲。

如果按照我們上面的指令碼的安裝方式,在安裝完成後,在/etc/httpd/conf.d/目錄下面應該有subversion.conf和trac.conf兩個檔案,我們分別配置他們就行了,二者沒有必然的聯絡。

  • 首先來配置subversion

主要是配置 /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
#上面兩行用於家在模組
<Location /repos>
   DAV svn
#   SVNPath /work/repos/projectA #如果只顯示一個工程,則用這個
   SVNParentPath /work/repos #顯示所有工程
# 下面進行許可權配置
#   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
      AuthType Basic
      AuthName "subversion repository"
      AuthUserFile /work/repos/.htpasswd  #密碼檔案必須用htpasswd產生
      AuthzSVNAccessFile /work/repos/.authz #管理組的許可權
      Require valid-user
   </LimitExcept>
</Location>

可以使用命令 #htpasswd -cm /work/repos/.htpasswd lirui來為使用者lirui添加密碼,建立檔案/work/repos/.authz,並按照svn的格式要求配置它。

在配置完成後,重新啟動http服務:#apachectl restart
這時候就可以通過命令:svn co http://your_site_ip/repos/projectA
把projectA的源碼check到本地了(前提是你有相應許可權),如果具有寫入權限,以後可以直接通過svn commit命令提交修改結果。

  • 再來配置trac

配置/etc/httpd/conf.d/trac.conf,下面是給出的一個藍本

#設定目錄許可權,如果不設定這個,你會得到沒有存取權限的錯誤,很煩人喲
<Directory "/usr/share/trac/htdocs">
    Order allow,deny
        Allow from all
</Directory>
 #以後你就可以輸入 http://your_site/trac來訪問,執行的就是這個trac.cgi

ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi

### Trac need to know where the database is located
<Location "/trac">
 #       SetEnv TRAC_ENV "/work/trac-env/projectA" #如果只顯示一個工程,用這個
      SetEnv TRAC_ENV_PARENT_DIR "/work/trac-env" #顯示多個工程
</Location>
 
### You need this to allow users to authenticate
<Location "/trac/login">
    AuthType Basic
    AuthName "trac"
    AuthUserFile /work/trac-env/trac.htpasswd #使用htpasswd產生的密碼檔案
    Require valid-user
</location>

ScriptAlias /trac/projectA /usr/share/trac/cgi-bin/trac.cgi

### Trac need to know where the database is located
<Location "/trac/projectA">
      SetEnv TRAC_ENV "/work/trac-env/projectA" #如果只顯示一個工程,用這個
 #      SetEnv TRAC_ENV_PARENT_DIR "/work/trac-env" #顯示多個工程
</Location>
 
### You need this to allow users to authenticate
<Location "/trac/project/Alogin">
    AuthType Basic
    AuthName "trac"
    AuthUserFile /work/trac-env/projectA/trac.htpasswd #使用htpasswd產生的密碼檔案
    Require valid-user
</location>

ScriptAlias /trac/projectB /usr/share/trac/cgi-bin/trac.cgi

### Trac need to know where the database is located
<Location "/trac/projectA">
       SetEnv TRAC_ENV "/work/trac-env/projectB" #如果只顯示一個工程,用這個
 #      SetEnv TRAC_ENV_PARENT_DIR "/work/trac-env" #顯示多個工程
</Location>
 
### You need this to allow users to authenticate
<Location "/trac/project/Alogin">
    AuthType Basic
    AuthName "trac"
    AuthUserFile /work/trac-env/projectB/trac.htpasswd #使用htpasswd產生的密碼檔案
    Require valid-user
</location>

 至此,我們已經配置完了,現在在瀏覽器輸入 http://your_site_ip/trac/projectA 就能看到一個web介面的管理系統了,好好體驗一把嘍。

還有一點不是很爽,有時候我們需要只輸入IP就能找到我們需要的網頁,比如我們輸入http://your_site就得到一個頁面,而不要 http://your_site_ip/trac/projectA才得到。我的做法是建立檔案/var/www/html/index.html,並 設定其轉到對應頁。下面是我的一個設定:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Redirection</title>
  <meta http-equiv="refresh" content="0;URL=/trac/projectA">
</head>
<body>
<h1><center>
                edirecting to trac bug system ...<br>
        <a href="/trac/projectA">哈哈,到這來</a>
</h1>
</body>
</html>

三、使用簡介

這部分待寫了:)

看看時間,快淩晨1:00了,有點困了,回宿舍睡覺了^_^

 

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=715784

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.