本文假设你已经申请好了EC2 Instance, 本例介绍的是Red Hat instance RHEL-6.4_GA-x86_64-10-Hourly2 (ami-1d62f027),其它系统也基本一样。
输入下面的命令,查看apache 是否存,如果存在可能看到它的版本信息,如果你看到类似下面的信息,表示可以用yum 去安装apache.对于如何使用yum请google 我这里不多讲。
输入下面命令:
Yuminstall httpd.x86_64
系统会自动安装,你将看到下面的信息:
到这里apache 就安装无毕,是不是很简单啊。相信你也体会到了yum 安装的魅力了吧,比Windows 鼠标点下一步也差不了多少是不。废话就到这里赶紧看看效果吧!理论上来讲你访问IP 应该是可以用了,那实际呢?我可能负责人的告诉你不成,为什么呢?我们还没有完成配置。
总得把apache 服务先启动吧:
Servicehttpd start
chkconfig httpd on (如果加上这个命令,下次服务器重启后apache 会自动启动,所以还是用上以免后患)
服务启动了,应该就好了吧。我也觉得在一般的服务器上是没有问题了。但在AWS red hat instance 里是不行的(amazon 自已的是可以的其它没试过),还要配什么?防火墙要关闭,能不能不关,我想是可以的,你可以研究一下打开相应的端口吧。我是个懒人,所以一关百了,当然是不关最好了:
关闭防火墙serviceiptables stop#start 开启#restart 重启永久性关闭防火墙chkconfig --level 35 iptables off
这个是重点在 AWSredhat instance 上,本人因这个整了好久一直不成,以为apache 没装好,国外的IP 被墙了,找了种种理由,最后还是这个问题。
到此应该可以了吧,我想一般情况是没有问题了。但AWS 上还是不行,为什么呢?
打开端口:
打开你创建的 Instance,打到下面红色标记的地方,双击:
在下面弹出的框中分别点击红色框:
当你点击Edit 后会弹出下面的框,打开HTTP和HTTPS ,当然你可以打开你想要的。当击保存(Save)
到这里,我想如果我说还不行,没有几个人再想用AWS了吧!现在我可以负责人的告诉你,一切Ready,just go.
测试:
可能有人会说,怎么测试?请看下图红色标记,一个是AWS提供的一个域名,我想没有人想用它。它一个是动态的IP,我比较喜欢用这个。复制后粘贴到你的浏览器里:
激动人心的时刻来了,如果你没看到下面的界面。我只能说你人品用完了,检查一下上面的步骤看看是不是那个没弄好。
恭喜你apache 安装成功!如果想安装SVN请看下回分析,如有雷同纯属巧合。
我用的是EC2 Red Hat Instance.其它的应该也差不多。
EC2Instance 里可能直接用yum 安装。
首先切换到 root 用户:sudo su /*换到root 用户*/
可以先查看一下有没有 subversion 包:
yumlist subversion /*查看一下subversion 的包*/
可能看到有两个包可用,我安装的是subversion.x86_64.
现在开始安装:
yuminstall subversion.x86_64 (中间会有提示,直接输入Y 回车)
当你看到上面的界面,表示已经安装完毕,是不是很简单啊!是不是可能用了,答案是不行,请继续下一步。
我想用过windows 的人会问,那个安装没有让我选择安装目录,它装到那里去了。下面我们学习一个命令,去查看yum 安装后的软件目录(请记住,这个命令只适合rpm 包安装)。
rpm –qlsubversion
通过上面的命令,我们可以查找软件安装到那里去了。那我怎么知道,我有没有安装成功呢?
下面我们新上场一个命令,验证是否安装成功
svnserve--version
当你看到上面的界面时,恭喜你已经安装成功了。是不是很兴奋,但我要提醒你,现在还不能用。为什么?用过SVN 的童鞋应该都记得,我用连SVN Server 时需要用户名,还要一个库。我们好像还没有创建这些,所以再忍一忍。请继续下面:
我们先首在创建一个目录,然后把这个目录作为我们的库。目录结构,可能根据自己的喜好,我这里用创建为:/svn/repository/rp.
用什么命令?
mkdir-p /svn/repository/rp
通过上面的命令,我们创建好了库目录。如何创建库呢?
svnadmincreate /svn/repository/rp
好的,库也建好了,看看是个什么样子的,上命令:
cd/svn/repository/rp/
ll
相信你看到一些文件,对这就是库创建好后,自动生成的一些管理文件。我们需要知道这些文件吗?我个人觉得没必要,如果你非要学习我也双手赞同。但这里我们在看一下conf 文件,听名字就知道要干什么了,是不是?好,先进去看看:
我嘞个去,有三个文件authz passwd svnserve.conf,passwd难道就是传说中的配密码的吗?恭喜你答对了。先一个个看一下吧:
ivauthz
到最后面看到上面的信息,这个主要用来配置用户的权限,请把下面的信息粘贴到上面或直接修改一下。
[groups]
admin=user1
[/]
@admin= rw #指定用户组成员可以读写根目录所有应用
[repos:/abc/aaa]
user2=rw #指定用户user2可以读写:/abc/aaa目录的文
权限配好了,好像没配用户啊。看来你会抢答了,赶紧配吧:
vipasswd
我们已经改了两个文件,另外一个要改吗?当然,请加下入面的配置信息并保存
vi svnserve.conf
anon-access:write
password-db:passwd
authz-db:authz
realm:/svn/repository
现成完了吧,如果我说还没有,恐怕有人会放弃的,我想SVN的设计者也会疯掉的。那我宣布,一切就绪,你是不是很激动啊,当然不要忘记启动svn server:
请注意:
SVN 默认的端口号是 3690,在AWS SERVER 上这个默认是关闭的。所以要先打开这个端口,在你进行下面步骤之前。不然你会发现连不上,不知道是没配好,还是什么原因:
(1)启动SVN服务:
[root@singledb conf]# svnserve -d -r /svn/repository/rp
-d表示后台运行
-r 指定根目录是 /svn/repository/rp
[root@singledb conf]# ps -ef | grep svn
(2)停止SVN服务:
ps -aux |grep svn
kill -9 进程杀掉
3.1 安装TortoiseSVN 客户端
3.2 找到自己项目的目录,右击,进行SVN 操作
(1)新建测试目录svn,进入后右键,点checkout:
SVN 服务器的IP地址。
恭喜你,一个简单的 SVN 安装配置就是完成!
当然,我想大家一定想试试SVN 怎么样与APACHE 结合吧?请看下面的配置。
前面我已经介绍了如何安装Apache 以及 如果安装配置SVN,下面我们介绍如何把SVN 和Apache结合起来。
Apache 与SVN结合需要mod_dav_svn 和mod_authz_svn,我们先看看这两个文件在不:
yum list mod_dav_svn
如果你看到上面的界面,说明你没有安装这个文件,需要安装。好吧,不就一个命令吗:
yum install mod_dav_svn.x86_64
安装完毕,感觉很爽吧,要注意一点安装好mod_dav_svn后 mod_authz_svn 会自动安装上。所以我们不需要再装另外一个。 请用下面的命令查看:
rpm -ql mod_dav_svn
表示已经安装好。Yap,所有需要安装的文件已经完毕,开始配置吧!
Aptache 的配置文件是httpd.conf,安装的位置可能会不一样,不过没关系,我们有查看神器:
rpm -ql httpd
从上面的结果中,可以找到我们安装的 Apache 配置文件在什么位置,这里是/etc/httpd/conf/httpd.conf
我们来看一下这个文件的真面目吧:
vi /etc/httpd/conf/httpd.conf
很长的样子,不过没有关系,我们只需要加入下面的配置信息在尾部(不太熟悉vi 命令的人可能会问怎么能一键到尾部?shift + g):
DAV svn
SVNParentPath /svn/repository
AuthUserFile /svn/repository/rp/conf/passwd
AuthzSVNAccessFile/svn/repository/rp/conf/authz
AuthType Basic
AuthName "Subversion repository"
Require valid-user
这样是不是就完事了,当然不是啊。还记得SVN 中passwd 文件吗?我们当时是明码的密码。这个在Apache 中是不成了。所以我们要重新修改这个文件:
因为htpasswd 的特殊性,加上我们想快速完事,所以直接把passwd 文件删掉然后重新用htpasswd 生成:
cd /svn/repository/rp/conf
rm passwd
创建 pqsswd 文件
htpasswd-cm /svn/repository/rp/conf/passwd user1
输入密码:
确认密码:
第二次创建用下面的命令:
htpasswd-m /svn/repository/rp/conf/passwd user2
我想细心的你一定注意到第一次创建密码和第二次创建时命令的参数不一样。
-c Create a new file.(如果第一次创建要用这个)
-m Force MD5 encryption of the password.
你只要记得c 表示要建一个新文件,所以一第一就加它,后面就不用了。这样是不是容易理解一点。
应该差不多了吧,我们重起一下Apache 看看效果:
service httpd restart
启动成功:
打开浏览器,输入 http://youripaddress/svn/rp
有个用户名密码框出来,可是怎么输用户名和密码就是进不去。什么情况?
我想罗嗦几句就是,纸上谈兵的缺点。理论是实战的坚实依据,但没有实战的支持,理论很脆弱。这不我就遇到了,上面这个问题,好多安装说明里面,博客里就是没有提到。大家都认为到这里就好了。但现实是残酷的,电脑是公平的也是无私的,你不对就是不对,不会因为你耗费了多少时间而同情你。我在这个上面就折腾了很久。不过,你如果看我的介绍就不用了,这就是当今的“站在巨人的肩膀上学习”优势的见证,当然你是体会不到经过折腾会解决问题后的那一丝快感。废话不说了,进入主题:
面对这个问题怎么解决? Log,不知道你的第一反应是不是这个,如果是,说明你比我聪明多了。我是试过好多方法后才突然想到既然和Apahce 结合那Apache log 里应该有一些信息吧,先看看吧反正不要钱:
vi /etc/httpd/logs/error_log
[Tue Oct 05 18:07:09 2010] [error] [client 125.223.118.90] (13)Permission denied:
Could not open password file: /svn/svnroot/passwd
[Tue Oct 05
18:07:09 2010] [error] [client 125.223.118.90] access to /
svn failed, reason:
verification of user id 'test' not configured
从日志看,因为检查过配置文件没有拼错,所以可以肯定是权限问题。
下面是方法,你可以一步步试下去,如果都试过了还不行,你只能去看人品医生了,不属于技术问题。
这是因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者
本例apache属于daemon拥有者,而svn仓库属于svn拥有者
解决方法:
chown-R apache /svn/repository/rp
chmod-R 755 /svn/repository/rp
chcon -R -h -t httpd_sys_content_t/svn/repository/rp
后来还是不行。执行以下命令后搞定
chcon -R -h -t httpd_sys_content_t /svn
(如果还有问题,请在桌面界面中右键文件夹,在权限修改界面将文件夹的所有者和访问群组都设置为apache,并给予访问权限,所有者给予创建和删除权限)
最后恭喜你又学会了一项技能,也可能体验Apache 和SVN 结合体所带给你的快感。
Jenkins是什么,我只说一句持续集成工具。如果你要问我持续集成工具是什么,我只能告诉你别装了。
听起来牛逼哄哄的,安装起来却如些简单。难道是文档详细的优越感吗?管TM吗?那么多,好装是王道。
Jenkins主页: http://jenkins-ci.org/
我觉得这里的文档是比较齐全,也比较详细。我如果再写就是对Jenkins 的侮辱。所以只把与安装有关的信息列出来。
Jenkins Redhat 安装URL:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions
下面是我从这个URL 里摘出来的,并经过实战考验:
Add the Jenkinsrepository to the yum repos, and install Jenkins from here.
Jenkins requires Javain order to run, yet certain Fedora-based distros don't include this bydefault. To install the Open Java Development Kit (OpenJDK) run the following:
sudo yum install java
Note: if you get the followingerror message, ensure that Java has been installed:
Starting jenkins (via systemctl): Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details.
[FAILED]
如果你说你看不懂英文,我建议你查字典翻译一下。如果你不想查,那还是放弃吧。Jenkins 里面即使中文版的,也有好多配置信息用英文描述。哥只能带你到这里。
这个更简单,除非你说你没用过Java Web 的东西,需要注意的是Jenkins 要先启动,上面已讲过启动的命令。这里我们只需要在浏览器里输入下面的URL:
To see Jenkins, simply bringup a web browser and go to URL http://myServer:8080 where myServer is thename of the system running Jenkins.
详细的信息请参考下面URL:
https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins
最后恭喜你,又多了一项技能,开心吧!后面我会讲Jenkins 和 SORNAE 结合。