龙空技术网

用Apache,Subversion和Trac构建你自己的开发服务器

晋州万悦城商贸 422

前言:

现时看官们对“ubuntusvn开机自启动”大体比较注重,咱们都需要分析一些“ubuntusvn开机自启动”的相关文章。那么小编同时在网上收集了一些关于“ubuntusvn开机自启动””的相关知识,希望我们能喜欢,朋友们一起来学习一下吧!

介绍

本文分为以下几个步骤

1.安装Subversion

2.安装Apache

3.使用SSL配置Apache

4.使用Apache(和SSL)配置Subversion

5.安装Trac

例如,您可以选择如何安装Apache和SSL,或者在没有Trac的情况下安装Apache plus subversion。

这些步骤是自愿隔离的,需要更多的操作,例如发布一个“apt-get install trac”,它将一步下载并安装所有软件包; 但这将有希望让读者选择一个部分,并忘记不需要的组件。

我不会解释Subversion是什么,或者是什么SSL等等。询问谷歌,获取这些信息:我只是说,对于你的软件项目,你可能需要一个服务器,为你的团队准备好这些工具。

要求

你需要Ubuntu ,我使用“服务器版”64位,而在安装时,我使用最小服务器模式按F4使系统尽可能轻。

准备

在安装服务器之后,您必须确保apt系统与存储库上的可用软件保持同步。键入以下命令:

$ sudo apt-get update

升级安装的软件包现在可能是一个好主意:

$ sudo apt-get upgrade

如果要求下载并安装升级,请回答是。

1.安装Subversion

从命令行输入命令:

$ sudo apt-get install subversion

如果一切顺利,您应该能够使用以下命令验证安装的Subversion版本:

$ svn --version

稍后我们将看到如何创建一个存储库,并使用apache和HTTP基本认证对其进行配置。

2.安装Apache

要安装apache 2,输入命令:

$ sudo apt-get install apache2

完成后,您应该能够通过http:// localhost与浏览器连接,并看到消息“It works!”。或者你可以在命令行中验证安装和使用curl:

$ sudo apt-get install curl

$ curl http:// localhost

<html> <body> <h1> It works!</ h1> </ body> </ html>

3.使用SSL配置Apache

现在我们要配置apache来运行HTTPs。

以下命令将使用a2enmod启用ssl Apache2模块(“Apache2启用模块”的神秘名称:

$ sudo a2enmod ssl

前面的命令会建议你重新启动apache来让它重新加载配置; 现在忽略该消息。

我们需要启用HTTPS端口(443)。编辑/etc/apache2/ports.conf并确保端口443的定义如下:

$ sudo vi /etc/apache2/ports.conf

# If you just change the port or add more ports here, you will likely also

# have to change the VirtualHost statement in

# /etc/apache2/sites-enabled/000-default

# This is also true if you have upgraded from before 2.2.9-3 (i.e. from

# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and

# README.Debian.gz

NameVirtualHost *:80

Listen 80

<IfModule mod_ssl.c>

# SSL name based virtual hosts are not yet supported, therefore no

# NameVirtualHost statement here

NameVirtualHost *:443

Listen 443

</IfModule>

我在SSL中添加了NameVirtualHost *:443子句; 这不是绝对必要的,但如果您希望为trac和其他开发服务提供VirtualHost,以后将会很有用。

现在我们需要配置SSL站点。我们已经有了配置文件,我们只需要用a2ensite(“apache2 enable site”的简写)来启用它。

$ sudo a2ensite default-ssl

同样,上面的命令会建议重新加载Apache配置来激活更改。这一次这个建议几乎是正确的。当我们做出了一些改变之后,我更喜欢用下面的命令重新启动apache:

$ sudo /etc/init.d/apache2 restart

* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

如果一切正常,你应该看到上面的警告。你可以忽略它,除非你想为你的服务器配置ServerName。所以,如果一切顺利,现在我们应该能够通过SSL连接到我们的服务器。

像以前一样,您可以使用firefox或curl,但是这次URL将是https:// localhost

$ curl -k

<html><body><h1>It works!</h1></body></html>

-k选项是忽略认证验证。另外firefox会抱怨我们的证书是无效的,但是你可以将它添加到异常中,并且它会提示你使用这些消息。

如果一切顺利,现在我们应该准备好Apache2,HTTP和HTTP。

4.使用Apache(和SSL)配置Subversion

首先,我们需要为Apache2安装Subversion模块。

$ sudo apt-get install libapache2-svn

它们将默认启用。所以你不需要运行a2enmod。

我们只需要配置一个存储库。假设我们的项目被称为'myproject'。

首先,我们来决定创建svn仓库的位置。我喜欢/ var / local / svn:

$ sudo mkdir / var / local / svn

然后让我们使用以下过程创建存储库:

$ sudo mkdir / var / local / svn / myproject

$ sudo chown www-data:www-data / var / local / svn / myproject

$ sudo -u www-data svnadmin create / var / local / svn / myproject

上述命令将确保用户www-data(这是apache用户)可以完全访问存储库以便读取和更新它。

我们需要在Apache中配置存储库。编辑/etc/apache2/mods-available/dav_svn.conf使用:

$ sudo vi /etc/apache2/mods-available/dav_svn.conf

并添加如下一节:

<Location / svn / myproject>

DAV svn

SVNPath / var / local / svn / myproject

AuthType Basic

AuthName“My Project Subversion Repository”

AuthUserFile

/etc/subversion/myproject.passwd <LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

</ LimitExcept >

</ Location>

在上面的文件中,我们指出,在svn位置我们的仓库应该回应。为了更新存储库,我们需要一个有效的用户。根据上述配置,允许匿名咨询; 但是您可以禁用它,使用前导'#'注释行<LimitExcept ...和</ LimitExcept>或仅删除它们,如下例所示:

<Location / svn / myproject>

DAV svn

SVNPath / var / local / svn / myproject

AuthType Basic

AuthName“My Project Subversion Repository”

AuthUserFile

/etc/subversion/myproject.passwd#<LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

#< / LimitExcept>

</ Location>

上面的配置向Apache表明,即使是咨询我们想要一个有效的用户的存储库。

但是有效的用户需要一个密码,实际上我们为我们的存储库指定了一个名为/etc/subversion/myproject.passwd的密码文件。因此,让我们与几个用户创建一个密码文件:

$ sudo htpasswd -c /etc/subversion/myproject.passwd luigi

$ sudo htpasswd /etc/subversion/myproject.passwd mario

-c选项表示应该将密码文件创建为新的; 只有第一个用户才需要。请注意这个事实,即-c会覆盖现有密码文件而不询问任何内容。就我个人而言,我认为这是一个相当愚蠢的行为,但事实就是如此。

现在我们应该准备好了。

让我们重新加载Apache配置,使更改生效:

$ sudo /etc/init.d/apache2 reload

让我们用浏览器测试我们的svn存储库现在可以通过HTTP和HTTP在以下URL中访问:

我们也可以使用curl来验证它正在工作:

$ curl

<html><head><title>myproject - Revision 0: /</title></head>

<body>

<h2>myproject - Revision 0: /</h2>

<ul>

</ul>

<hr noshade><em>Powered by <a href="">Subversion</a> version 1.5.4 (r33841).</em>

</body></html>

$ curl -k

<html><head><title>myproject - Revision 0: /</title></head>

<body>

<h2>myproject - Revision 0: /</h2>

<ul>

</ul>

<hr noshade><em>Powered by <a href="">Subversion</a> version 1.5.4 (r33841).</em>

</body></html>

现在我们也可以使用svn下载我们的项目

$ svn co https:// localhost / svn / myproject myproject --username luigi

“luigi”显然是我的用户名,用你的用户名代替。

第一次它会提示接受SSL证书,回答永久接受它(p)。然后它可以选择询问你输入的密码。

我们还可以测试修改远程存储库是否正在处理:

$ svn mkdir -m "created the trunk for the project" --username luigi

它会回答:承诺修订1.如果是这样,我们已经完成了。

5.安装Trac

要安装trac文件和所需的依赖项,请键入以下命令:

$ sudo apt-get install trac

$ sudo apt-get install libapache2-mod-python

我们来创建trac web文件夹的目录:

$ sudo mkdir / var / local / trac

$ sudo chown www-data:www-data / var / local / trac

编辑其中一个启用站点的Apache配置文件(在本例中,我修改默认的http一个,但您可以选择将trac放在HTTPS上修改default-ssl)

$ sudo vi / etc / apache2 / sites-enabled / 000-default

并在</ VirtualHost>标记之前的文件末尾添加以下行:

<Location /projects>

SetHandler mod_python

PythonInterpreter main_interpreter

PythonHandler trac.web.modpython_frontend

PythonOption TracEnvParentDir /var/local/trac

PythonOption TracUriRoot /projects

PythonOption PYTHON_EGG_CACHE /tmp

</Location>

# use the following for one authorization for all projects

# (names containing "-" are not detected):

<LocationMatch "/projects/[[:alnum:]]+/login">

AuthType Basic

AuthName "trac"

AuthUserFile /etc/trac/trac.passwd

Require valid-user

</LocationMatch>

为trac用户创建一个密码文件(如果您希望您可以重用或链接用于subversion存储库的passwd文件)

$ sudo htpasswd -c /etc/trac/trac.passwd luigi

$ sudo htpasswd /etc/trac/trac.passwd mario

... continue this way for all your users.

为您的项目创建trac环境:

$ sudo -u www-data trac-admin /var/local/trac/myproject initenv

它会问你一些与你的项目有关的问题。

Project Name [My Project]> My Project

Database connection string [sqlite:db/trac.db]> [Just press Enter to accept the default]

Repository type [svn]> [Just press Enter to accept the default]

Path to repository [/path/to/repos]> /var/local/svn/myproject

现在让我们重新启动apache:

$ sudo /etc/init.d/apache2 restart

检查trac是否可以正确地将浏览器连接到http:// localhost / projects或使用curl来验证url是否正确响应,就像我们以前一样。这个网址应该显示一个链接到“我的项目”,点击它,你应该看到项目的主页。点击登录,浏览器应该要求您提供最近用htpasswd命令定义的用户名和密码。

最后要做的事:添加自己作为Trac的管理员。这将启用管理菜单并允许从网络执行大部分管理操作,您也可以在命令行上使用trac-admin工具执行操作。

执行以下命令:

$ sudo -u www-data trac-admin /var/local/trac/myproject permission add luigi TRAC_ADMIN

这将使该项目的用户名'luigi'管理员。

您可以在Trac中调整其他配置设置以启用电子邮件通知,更改项目徽标等。

标签: #ubuntusvn开机自启动