在Ubuntu服务器上设置Subversion和Trac作为虚拟主机
这个方法概述了可以设置Subversion版本控制系统的过程,并在运行Ubuntu(或可能是Debian)的服务器上与软件开发项目的项目经理Trac一起工作。 它是由Openject Consulting带给您的。
设置Subversion
有关这方面的详细信息,包括备用设置,请参阅使用Subversion的版本控制 。
-
- 安装所需的软件包。
- sudo aptitude install enscript libapache2-mod-python python-docutils trac db4.3-util libapache2-svn subversion-tools
-
- 为SVN创建虚拟主机目录。 我们将使用/ var / local / svn而不是/ var / www,以便Subversion实例不会阻塞Web根目录的目录。
- sudo mkdir -p /var/local/svn/svn.example.com
-
- 创建一个开发组,并添加Web用户。
- sudo addgroup示例 sudo adduser www-data示例
-
- 将用户添加到开发组。 这些是需要访问存储库的人员。
-
sudo adduser username1示例
sudo adduser username2示例
sudo adduser username3示例
-
- 设置适当的权限。
- sudo chmod 2770 /var/local/svn/svn.example.com
-
- 设置存储库。
- sudo svnadmin create /var/local/svn/svn.example.com
-
- 清除当前密码文件。 默认情况下,它是针对svnserve协议的,但我们将使用HTTPS(或仅使用HTTP)。 我们稍后将在此文件中添加用户。
-
sudo rm /var/local/svn/svn.example.com/conf/passwd
sudo touch /var/local/svn/svn.example.com/conf/passwd
-
- 允许组写入存储库。
- sudo chmod -R g + w /var/local/svn/svn.example.com
-
- 设置文件所有权。
- sudo chown -R www-data:example /var/local/svn/svn.example.com
-
- 设置存储库访问权限。 有关如何执行此操作的信息可以在 版本控制与Subversion 的基于路径的授权部分 找到 。
- sudo vi /var/local/svn/svn.example.com/conf/authz
-
- 为日志文件创建一个目录。
- sudo mkdir /var/log/apache2/svn.example.com
-
- 将站点添加到日志轮播列表。
- sudo vi /etc/logrotate.d/apache2
-
- 配置虚拟主机...
- sudo vi /etc/apache2/sites-available/svn.example.com
- ...具有以下数据。 如果您不关心SSL,则可以忽略SSL选项,并在端口80上运行此选项。
-
<VirtualHost [server's IP address]:443> ServerName svn.example.com <Location /> DAV svn AuthType Basic AuthName "svn.example.com" AuthUserFile /var/local/svn/svn.example.com/conf/passwd AuthzSVNAccessFile /var/local/svn/svn.example.com/conf/authz SVNPath /var/local/svn/svn.example.com Require valid-user </Location> CustomLog /var/log/apache2/svn.example.com/access.log combined ErrorLog /var/log/apache2/svn.example.com/error.log SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem # Add this once there is a real (non self-signed) certificate. # SSLCertificateKeyFile /etc/apache2/ssl/server.key </VirtualHost> <VirtualHost [server's IP address]:80> ServerName svn.example.com Redirect / https://svn.example.com/ </VirtualHost>
- 参考:
- /etc/apache2/mods-enabled/dav_svn.conf
-
- 启用subversion虚拟主机。
- sudo a2ensite svn.example.com
-
- 创建用户/密码组合。
- htpasswd /var/local/svn/svn.example.com/conf/passwd用户名
-
- 重新启动Web服务器。
- sudo /etc/init.d/apache2重新启动
-
- 如果要让用户在本地工作,请设置svnwrap。 (详见手册页)
- sudo ln -s / usr / bin / svnwrap / usr / local / bin / svn
设置Trac
-
- 创建网络目录。 我们将使用/ var / local / trac代替/ var / www,以免堵塞webroot的目录。
- sudo mkdir -p /var/local/trac/trac.example.com
-
- 设置适当的权限。
- sudo chmod 2770 /var/local/trac/trac.example.com
-
- 创建一个Trac实例。
- sudo trac-admin /var/local/trac/trac.example.com initenv
-
- 在网络目录中设置适当的所有权。
- sudo chown -R www-data:example /var/local/trac/trac.example.com
-
- 允许组写入存储库。
- sudo chmod -R g + w /var/local/trac/trac.example.com
-
- 配置它
- sudo vi /var/local/trac/trac.example.com/conf/trac.ini
-
- 为日志文件创建一个目录。
- sudo mkdir /var/log/apache2/trac.example.com
-
- 将站点添加到日志轮播列表。
- sudo vi /etc/logrotate.d/apache2
-
- 配置虚拟主机...
- sudo vi /etc/apache2/sites-available/trac.example.com
- ...具有以下数据。 如果您不关心SSL,您可以跳过SSL选项,并在端口80上运行此选项。
-
# Trac Configuration <VirtualHost [server's IP address]:80> ServerName trac.example.com Redirect / https://trac.example.com/ </VirtualHost> <VirtualHost [server's IP address]:443> ServerName trac.example.com DocumentRoot /var/local/trac/trac.example.com/ Alias /trac/ /usr/share/trac/htdocs <Directory "/usr/share/trac/htdocs/"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <Location /> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonInterpreter main_interpreter PythonOption TracEnv /var/local/trac/trac.example.com/ PythonOption TracUriRoot / AuthType Basic AuthName "trac.example.com" # Use the SVN password file. AuthUserFile /var/local/svn/svn.example.com/conf/passwd Require valid-user </Location> CustomLog /var/log/apache2/trac.example.com/access.log combined ErrorLog /var/log/apache2/trac.example.com/error.log SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem # Add this once there is a real (non self-signed) certificate. # SSLCertificateKeyFile /etc/apache2/ssl/server.key </VirtualHost>
- 参考:
- http://trac.edgewall.org/wiki/TracOnUbuntu
-
- 启用Trac虚拟主机。
- sudo a2ensite trac.example.com
-
- 配置Trac权限 一旦进入管理控制台,执行命令“帮助权限”获取有关如何执行此操作的信息。 这很重要,因为默认情况下,某些设置是允许的,当它们应该是限制性的。 另外,请参阅维基页面TracPermissions附带您的新安装。
- trac-admin /var/local/trac/trac.example.com
-
- 重新启动Web服务器。
- sudo /etc/init.d/apache2重新启动
最后一件事是将子域“svn”和“trac”添加到您的域的DNS配置中。 一旦完成,Subversion和Trac将被集成到您的服务器环境中,并且可以从Web访问。