代码改变世界

Debian apache2 + SVN + Redmine 配置

2013-03-19 09:01  robturtle  阅读(2176)  评论(0编辑  收藏  举报

用ubuntu这种更新频繁的发行版做服务器简直蛋疼,买了一个香港VPS,然后发现ubuntu 10 的二进制库年旧失修,遂重装为debian。

association between apache2, svn and redmine

SVN + Apache2

1. 首先安装主体以及二者间的“夹具”。

apt-get install apache2 subversion libapache2-svn

2. 创建版本库并将所有权转让给apache2

svnadmin create /var/svn
chown www-data:www-data -R /var/svn

3. “挂载”版本库 (实在不知道专业的叫法是什么。。。)

在 apache2.conf 内添加如下内容

# file: /etc/apache2/apache2.conf

# svn 
 <Location /svn>
    DAV svn
    SVNPath /var/svn/repos
    AuthzSVNAccessFile /var/svn/repos/conf/authz
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /var/svn/repos/conf/passwd
    Require valid-user
</Location>

 3*. 如果挂载完svn后重启apache报非法指令'AuthzSVNAccessFile',那么很可能是'authz_svn_module'没加载或apache自己加载顺序的问题,可以在 mods-available/dav.load手动加载该模块解决问题。(添加下文中的最后一行即可)

# file: /etc/apache2/mods-available/dav.load
LoadModule dav_module
/usr/lib/apache2/modules/mod_dav.so LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

 4. 修改svn权限设置,权限主体可为个人或小组,以目录为节点设置读/写位,下面是样例:

# file: /var/svn/conf/authz

[groups] admin = jeremy,Yang group_a = ua,ub,uc [/group_a] @group_a = rw [/gigo] * = rw [/]
* = r @admin
= rw

  注意到apache2的设置,所以也不是所有人都可以在gigo文件夹下乱涂乱画的。

 5. 创建账户,这里演示手动创建的过程

cd /var/svn/conf
htpasswd -c passwd jeremy htpasswd passwd Yang htpasswd passwd ua htpasswd passwd ub htpasswd passwd uc

 至此,svn算配置完毕。

Redmine + Apache2

1. 首先安装redmine支持的一种数据库

apt-get install mysql-client mysql-server

 2. 安装 redmine 主体和对应的数据库组件

apt-get install redmine-mysql redmine

 3. 登入mysql

mysql -u root -p

 3-1. 为 redmine 创建数据库,并给予权限,设置密码

mysql> create database redmine character set utf8;
mysql> grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'PASSWD';

4. 增加数据库配置文件  

cd /usr/share/redmine/config
cp ../template/database.yml.template database.yml
vi database.yml

 5. 下面是配置文件样例

# file: /usr/share/redmine/conf/database.yml

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: PASSWD
  encoding: utf8

 6. 创建默认的数据库,并将所有权交给 apache2

cd /usr/share/redmine
rake generate_session_store RAILS_ENV
=production rake db:migrate RAILS_ENV=production rake redmine:load_default_data chown -R www-data:www-data /usr/share/redmine

 7. 安装“夹具”

gem install passenger
cd /var/gems/1.8/gems/passenger-3.0.19/bin
./passenger-install-apache2-module

 7*. 根据非常人性化的提示,安装依赖包,重新调用passenger-install-apache2-module

apt-get install libcurl4-openssl-dev apache2-prefork-dev 
./passenger-install-apache2-module

 8. 根据passenger给的提示,将下面几行命令添加至 apache2.conf 以加载 passanger 模块

# file: /etc/apache2/apache2.conf

  LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
   PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.19
   PassengerRuby /usr/bin/ruby1.8

 9. 在httpd.conf 配置 redmine 虚拟主机

# file: /etc/apache2/httpd.conf

   <VirtualHost *:80>
      ServerName www.yourhost.com
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /somewhere/public    
      <Directory /somewhere/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </Directory>
   </VirtualHost>

 10. 至此,大功告成,重启apache2 检查配置

/etc/init.d/apache2 restart