Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1224181
  • 博文数量: 275
  • 博客积分: 6445
  • 博客等级: 准将
  • 技术积分: 2863
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-04 23:22
文章分类

全部博文(275)

文章存档

2024年(4)

2023年(5)

2022年(3)

2021年(18)

2020年(9)

2019年(1)

2018年(13)

2017年(11)

2015年(9)

2013年(2)

2012年(4)

2011年(24)

2010年(114)

2009年(6)

2008年(29)

2007年(13)

2006年(10)

我的朋友

分类: LINUX

2017-05-02 16:17:07


Trac + SVN + Virtual host 設定一起搞定, 先寫比較清楚的版本, 之後再來改寫簡易版.

首先 Subversion + HTTP(apache2) 存取, 請見:

假設現在已經可以由 做 ci/co 等動作, 且 svn 目錄建在 /home/svn/repository.

  1. 安裝 trac: apt-get install trac libapache2-mod-python(有一堆相關的會自動幫你裝上), 預設會裝: trac python python-central python-clearsilver python-minimal python-pysqlite2 python-subversion python-support python2.4  python2.4-minimal 等 package.
  2. mkdir -p /home/trac/PROJECT_NAME
  3. trac 初始化設定, 安裝於 /home/trac: trac-admin /home/trac/PROJECT_NAME initenv, 會問
    • Project Name => PROJECT_NAME
    • Path to repository => /home/svn/repository/PROJECT_NAME
    • 其它都 enter 按過即可.

於是就會產生:

  • /home/trac/PROJECT_NAME/conf/trac.ini # trac 設定檔, 如果剛剛沒設好的, 可以直接設此檔即可. 

設定 /home/trac/PROJECT_NAME/conf/trac.ini 語系:

  1. vim /home/trac/PROJECT_NAME/conf/trac.ini
  2. default_charset = iso-8859-15 => default_charset = utf-8

修改權限並測試看看之前設定是否都正確:

  1. chown www-data:www-data -R /home/trac/PROJECT_NAME
  2. sudo -u www-data tracd --port 8000 /home/trac/PROJECT_NAME # 執行啟動應該就可以用 存取(如果這個不能存取, 有可能是設定設錯了(注意 repository path 設定), 此處一定要先可以存取, 再做整合 apache 的動作)

設定 apache, 讓 可以直接存取.

  • 直接存取, 不設 Virtual Host: vim /etc/apache2/conf.d/PROJECT_NAME.conf

    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv "/home/trac/PROJECT_NAME"
    PythonOption TracUriRoot "/trac/PROJECT_NAME"

      AuthType Basic
      AuthName "Trac"
      AuthUserFile /etc/apache2/dav_svn.passwd
      Require valid-user

    # 另一種寫法
    #
    #  AuthType Basic
    #  AuthName "Trac"
    #  # 跟 svn account 同一個檔即可.
    # AuthUserFile /etc/apache2/dav_svn.passwd
    #  Require valid-user
    #

  • 這樣子 /etc/init.d/apache2 restart 應該就可以 連到了.
  • 於 VirtualHost 情況下設定檔如下: vim /etc/apache2/sites-enbaled/PROJECT_NAME.conf


        ServerAdmin webmaster@localhost
        DocumentRoot /home/trac
        ServerName VIRTUAL_HOST_NAME
        ErrorLog /var/log/apache2/trac-error.log
        CustomLog /var/log/apache2/trac-access.log combined

        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv "/home/trac/PROJECT_NAME"
        PythonOption TracUriRoot "/trac/PROJECT_NAME" # 注意: 此處是 URI
       
          AuthType Basic
          AuthName "Trac"
          # 跟 svn account 同一個檔即可. 
          AuthUserFile /etc/apache2/dav_svn.passwd
          Require valid-user
       


  • 正規方法應該是先寫在 /etc/apache2/sites-available/PROJECT_NAME.conf
  • 再 ln -s /etc/apache2/sites-available/PROJECT_NAME.conf /etc/apache2/sites-enabled/PROJECT_NAME.conf 會比較好.
  • (如果 Virtual host 設在 conf.d 裡面, 就直接寫這個檔案即可 /etc/apache2/conf.d/PROJECT_NAME.conf)
  • 這樣子 /etc/init.d/apache2 restart 應該就可以 連到了.(主要是要一台機器控管多個 Trac)

往後如果 trac 有升級(apt 升級), 都執行 trac-admin /home/trac/PROJECT_NAME upgrade 來升級即可.

附註: (其它功能設定)

Trac 有任何修改都寄信出來: 

  1. vim /home/trac/PROJECT_NAME/conf/trac.ini
  2. 修改 smtp_always_bcc = EMAIL, 填上 Email, 並把 smtp 該設的也設一設即可.

Trac 安全權限設定:

  1. trac-admin /home/trac/PROJECT_NAME permission
  2. trac-admin /home/trac/PROJECT_NAME permission list # 看有哪些權限能開
  3. trac-admin /home/trac/PROJECT_NAME permission remove anonymous '*'  # 這樣子預設沒登入就不能進入 Trac
  4. trac-admin /home/trac/PROJECT_NAME permission add USERNAME TRAC_ADMIN
  5. trac-admin /home/trac/PROJECT_NAME permission list # 可以看到 USERNAME 設為 TRAC_ADMIN 的訊息
  6. chown -R www-data:www-data /home/trac/PROJECT_NAME
阅读(965) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~