Apache+SSL+Subversion+PAM in Ubuntu

前言:

需要模組:libapache2-mod-auth-pam, libapache2-mod-auth-sys-group, libapache2-svn, subversion
以上模組皆可使用

sudo aptitude

或是

sudo apt-get install [package]

取得

Subversion部分:

  1. 安裝

    $ sudo apt-get install subversion
    $ sudo apt-get install libapache2-svn

  2. 建立欲存取的 Group:假設名稱為 dev

    $ sudo groupadd dev

  3. 加入欲存取的帳號 & www-data (Apache 帳號) 到 Group中

    $ sudo adduser www-data dev
    $ sudo adduser [your account] dev

  4. 建立 Subversion Repository:一般常用位置 /usr/local/svn or /home/svn,以下範例假設放在 /home/svn 底下,並且 Project 名稱為“myproject”


    $ sudo mkdir /home/svn
    $ cd /home/svn
    $ sudo mkdir myproject
    $ sudo svnadmin create /home/svn/myproject
    $ sudo chown -R root:dev myproject
    $ sudo chmod -R g+rws myproject

設定SSL:

  1. 啟用模組

    $ sudo a2enmod ssl

  2. 建立 SSL Certificate

    $ sudo apache2-ssl-certificate -days 365

  3. 啟用一個 SSL 用的 Vertual Host
    1. 先複製一份 default site 的設定檔

      $ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

    2. 修改 default,加上

      NameVirtualHost *:80
      <VirtualHost *:80>

    3. 修改 ssl,加上

      NameVirtualHost *:443
      <VirtualHost /:443>
      SSLEngine On
      SSLCertificateFile /etc/apache2/ssl/apache.pem

    4. 儲存後,啟動 site

      $ sudo a2ensite ssl

    5. 修改 /etc/apache2/ports.conf 加入

      Listen 443

    6. 重新啟動 Apache

      $ sudo /etc/init.d/apache2 restart

設定 Apache/SVN/PAM:

  1. 啟用模組

    $ sudo a2enmod dav_svn
    $ sudo a2enmod auth_pam
    $ sudo a2enmod auth_sys_group

  2. 修改 ssl,加上

    <Location /svn/myproject>
    DAV svn
    SVNPath /home/svn/myproject
    AuthType Basic
    AuthName "Subversion myproject Realm" #可自由更改
    require group dev
    </Location>

  3. 將 www-data 加入 shadow Gruop

    $ sudo adduser www-data shadow

  4. 重新啟動 Apache

    $ sudo /etc/init.d/apache2 restart

如此一來設定完成,即可使用如 TortoiseSVN 之類的 GUI 工具 Check Out myproject 了。

參考網站:
Apache2/SSL+Subversion+PAM认证服务器配置
Ubuntu SubVersion服务安装设置
Ubuntu 5.10 下Apache2 SSL 的配置方法

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: