gerrit配置和使用.docx
《gerrit配置和使用.docx》由会员分享,可在线阅读,更多相关《gerrit配置和使用.docx(26页珍藏版)》请在冰豆网上搜索。
gerrit配置和使用
一、apache服务的安装
1.安装Apache
有两种时候可以安装Apache服务器:
安装Linux操作系统的时候安装Web服务器rpm包,和安装完系统后安装Apache服务器。
(源码安装)
提示:
可以用命令#rpm-qa|grephttpd检查一个系统是否安装了Apache服务器,如果没有输出,则表明没有安装。
以下为某个安装了Apache服务器输出的一个范例。
如果是以源码安装的Apache服务器,则此种方法无效,需要用find工具查找httpd文件是否存在。
httpd-tools-2.2.15-9.el6.x86_64
httpd-manual-2.2.15-9.el6.noarch
httpd-2.2.15-9.el6.x86_64
如果在安装Linux操作系统期间没有安装Apache,这就需要使用包文件来安装。
1.RPM包的安装。
从Linux的安装光盘和互联网上,都可以得到Apache的RPM安装包,然后把安装包复制到硬盘,并切换到安装包文件所在的目录。
本文以httpd-2.2.15-9.el6.x86_64.rpm为例。
执行命令:
#rpm-ivhhttpd-2.2.15-9.el6.x86_64.rpm
然后再执行:
#rpm-ivhhttpd-nanual-2.2.15-9.el6.x86_64.rpm
把手册也安装上去。
2.源码安装。
到网站www.apache.org下载欲安装的版本,笔者喜欢尝试最新的版本,当前的最新有效版本为httpd-2.2.0.tar.gz。
在httpd-2.2.0.tar.gz文件所在的当前目录解压文件#tarzxvfhttpd-2.2.0.tar.gz,然后切换目录到httpd-2.2.0,进行配置:
或者wget
#cdhttpd-2.2.0.tar.gz;/configure--prefix=/usr/local/apache
顺利完成这步后,接着进行编译安装:
#make;makeinstall。
其中,配置这一过程,使用了选项“--prefix=/usr/local/apache”来指定Apache的安装目录,使Apache服务器所需的大部分文件都被复制在这个目录里。
实际上,配置是一个很灵活的选择,根据需要可以添加更多的选项,支持更多的功能。
2.配置文件
Apache的配置文件是httpd.conf,一般在/etc/http/conf或/usr/local/apache/conf目录,以rpm包形式安装的Apache,配置文件的位置是/etc/httpd/conf/httpd.conf。
对Apache服务器进行得最多的操作恐怕就是在时时更改这个文件的内容。
当然,如果只是运行简单的静态网页,也可以不用对它做任何更改。
打开配置文件httpd.conf,可以获悉根文档的目录位置。
前面安装的Apache的根文档位置是/usr/local/apache/htdocs(rpm包安装的Apache的根文档位置是/var/www/html),欲运行自己的网站,需要把做好的网页文件和目录复制到Apache的根文档才可以。
3.上传网页文件及目录
上传网页文件及目录的最佳方式是启用FTP服务。
创建一个系统用户,使该用户对目录/usr/local/apache/htdocs具有读写权限或者该用户的主目录为/user/local/apache/htdocs。
在这里我们创建一个用户,使其主目录为Apache的根文档目录:
#useradd-d/usr/local/apache/htdocsWebuser//添加的用户为Webuser,
#passwdWebuser//给该用户设置一个访问密码。
这样就可以很方便地修改或上传网页文件和目录了。
有人认为,用SSH客户端工具也可以实现文件的上传。
4.启用/关闭Apache服务
上面的步骤都准备好以后,就可以启用这个网站服务器了。
启用方法如下:
#/usr/local/apache/bin/apachctlstart //源码安装的启动方式
#/usr/local/apache/bin/apachectlstop
#servicehttpdstart//rpm包安装的启动方式
#servicehttpdstop
如果不出意外,Apache服务器将如我们所期待的那样运行起来,我们只要在某台能访问Apache服务器的计算机浏览器里输入Apache服务器的IP地址或者预先解析好的域名,网站的主页就会出现在浏览器里。
在Apache服务器端,通过输入命令:
#ps-aux|grephttpd
检查Apache服务器是否正在运行。
到此,一个具备基本功能的Apache服务器就诞生了。
虚拟主机
有时候,我们可能需要用一个Apache服务器来做多个Web服务器,比如运行几个不同的网站,这样就可以大大地节省开支。
使用虚拟主机大致有以下几个步骤:
1.确定使用虚拟主机的方式。
虚拟主机有基于域名、IP、端口等几种形式,应该根据自己的实际情况来决定。
2.修改配置文件/etc/httpd/conf/httpd.conf或/usr/local/apache/conf/httpd.conf。
3.域名解析(基于域名的虚拟主机),这一步需要在域名服务器上进行。
4.启用/关闭虚拟主机。
启用/关闭Apache守护进程即可,但这将关闭所有的Web服务。
设置虚拟主机实例
讲述一个虚拟主机的实例。
先描述一下需求:
一台服务器,要求运行一个以PHP为脚本的网站,另外还要用它来做网络流量监控(需要Web服务)。
在这里,我们采用二进制源码包的方式来安装配置Apache虚拟服务器,以便于对Apache服务器有更深刻的理解。
(1)安装Apache服务器。
从www.apache.org下载包httpd-2.2.0.tar.gz到目录/root,然后执行操作:
#tarzxvf httpd-2.2.0.tar.gz //包解压
#cd#tarzxvf httpd-2.2.0.
#./configure--prefix=/usr/local/apache--enable-module=most--enable-shared=max
#make
#makeinstall
至此,Apache就算安装好了。
先测试一下,运行命令:
#/usr/local/apache/bin/apachectlstart
然后在与之联网的计算机的浏览器里输入运行Apache服务的计算机IP地址,出现测试页面表明配置一切正常。
(2)安装PHP。
下载包php-4.3.11.tar.gz到目录/root,然后执行下面的操作:
#tar-zxvfphp-4.3.11.tar.gz //解压文件
#./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs //正常//完成后会在/usr/local/apache/modules里生成文件libphp4.so,并且会在//apache的配置文件httpd.conf里加上一行LoadModulephp4_module//modules/libphp4.so
#make
#makeinstall
#cpphp.ini-dist /usr/local/lib/php.ini //拷贝文件
完成后看是否真在目录/usr/local/apache/modules生成文件libphp4.so,再打开配置文件httpd.conf查看LoadModulephp4_modulemodules/libphp4.so是否被自动追加。
(3)修改Apache配置文件/usr/local/apache/conf/httpd.conf。
加入行TypeAddapplication/x-httpd-php.php4到307行的位置,当然其他位置也是可以的。
注意:
php4前面有一个空格。
笔者第一次配置PHP整合Apache的时候就犯了这个错误,用了好几天的时间才弄明白。
另外PHP前面那个“.”(小黑点)一定不要漏掉了。
(4)启动一下apache服务器。
找几个php脚本的网页文件,把它复制到apache指定的根文档目录/usr/local/apache/htdocs,然后在与之联网的计算机的浏览器中输入apache所在机器的URL(形如 http:
//192.168.100.10/test.php),来检验一下配置是否成功。
(5)创建虚拟服务器。
Apache/2.2.0与以前的版本有些差异,它是以包含文件的方式来加载用户定义的虚拟主机配置,前面的版本定义虚拟主机就在httpd.conf文件中。
我们还是先在主配置文件中把虚拟主机的配置文件/usr/local/apache/conf/extra/httpd-vhosts.conf包含进来。
具体的操作就是把行#Includeconf/extra/httpd-vhosts.conf的注释去掉,使之成为Includeconf/extra/httpd-vhosts.conf,这一行在httpd.conf的行号是394,然后保存后退出。
接着我们打开文件/usr/local/apache/conf/extra/httpd-vhosts.conf,其默认状态如下:
#
ServerAdminwebmaster@dummy-
DocumentRoot/www/docs/dummy-
ServerNamedummy-
ServerAliaswww.dummy-
ErrorLoglogs/dummy--error_log
CustomLoglogs/dummy--access_logcommon
等我们先安装配置mrtg,然后再回过头来修改文件/usr/local/apache/conf/extra/httpd-vhosts.conf。
(6)启用交换机的SNMP功能。
要监控连接在交换机每个端口的服务器网络流量,必须启用交换机的SNMP,这样就不必更改被监控服务器的任何设置。
启用交换机SNMP功能的方法,请参照相关文档。
(7)安装和配置mrtg。
把软件包下载到硬盘,解压后直接安装就可以了。
(8)修改虚拟主机配置文件。
需要指定根文档目录、服务器名称这几项。
如果要对虚拟主机的访问进行用户验证,还需要在Apache的主配置文件对虚拟机的根文档目录进行相关的处理。
把下面的行插入到Apache的主配置文件httpd.conf中。
AuthName"mrtg
AuthTypeBasic
AuthUserFile/usr/local/apache/.mrtg //带点是为了使文件的属性为隐藏
requirevalid-user
保存后退出。
然后运行命令:
#/usr/local/apache/bin/htpasswd-c/usr/local/apache/.mrtg sery
按照提示设定用户sery的访问密码。
(九)做域名解析。
在域名服务器上解析主机.
(十)启用Apache服务。
用指令#ps-aux|grephttpd检查Apache是否正常运行,然后在另外的计算机浏览器里输入Apache服务器的URL,如输入则应该访问到主配置文件设定的网页,如果输入则访问上面设定的虚拟机页面,并且需要输入正确的用户名和密码才能访问。
通过上面的实践,我们可以得出这样一个结论:
Apache服务器功能设定的主要操作就是修改配置文件——主配置文件httpd.con及包含配置文件。
当然,Apache的配置不仅仅是上文所描述的那些,可以说是非常丰富,也是非常灵活的。
限于篇幅,不再详叙。
至于要让Apache随系统启动,可以把守护进程/usr/local/apache/bin/httpd&加在文件/etc/rc.local里即可。
提示:
为了在同一环境下使用更多的Apache服务,可以安装多个Apache到不同的目录,安装目录在安装过程中的配置操作./configure-prefix=<安装目录>制定,所有Apache的配置原则都是一致的,所有配置完成后,把它们全部启动起来。
关于配置多个虚拟主机与安装多个Apache服务究竟有多大的差别,望各位读者自己去做评判。
5.最后,说几个apache的配置
1、ServerRoot这段.将它设成你的Apache安装目录,我的是ServerRoot"/etc/httpd"
2、DocumentRoot这段.把他设成你网站的根目录,我的是DocumentRoot"/var/www/html"
3、DirectoryIndex 这段.把它改成DirectoryIndex index.phpindex.Htmlindex.html 这样,你的网站目录的默认首页是index.php,如果没有index.php系统会自动寻找index.html、html做为默认首页了。
4、把/etc/httpd/conf.d/welcome.conf中的所有行去掉后,就不会显示默认的首页了。
二、Git和gitweb的安装
git安装方式也有两中
1.源码安装
解压后切换到其目录
$tarxvfjgit-1.7.6.tar.bz2
$cdgit-1.7.6
使用默认配置进行安装,如果想修改配置,可以使用./configure--help来获取帮助
$./configure
$make
$makeinstall
2.rpm包安装
直接rpm–ivhgit-1.7.1-2.el6_0.1.x86_64.rpm
安装完成后会产生这个目录/var/lib/git/。
3.git基本操作
(1)git初始化一个工程:
mkdirproject;cdproject;gitinit
(2)设置全局用户信息及邮箱:
gitconfig--globaluser.name"Xiaochun.li"
gitconfig--globaluser.emaillei.wang@
(3)mkdirworktree;cdworktree
(4)git远程clone:
gitclonegit:
//10.1.80.85/loongson-32
(5)如果需要创建自己的分支:
gitbranchbranchname
列出所有本地分支:
gitbranch
删除某本地分支:
gitbranch-dbranchname
切换本地分支:
gitcheckoutbranchname
(6)git增加文件:
gitaddabcreadme-cs2c
git删除文件:
gitrmabc
(7)git本地提交:
gitcommit-m"whatwedid"
git删除本地上一个commit:
gitreset--softHEAD~1
git修改一个已经提交的commit:
gitcommit--amend
(8)git远程提交:
gitpushssh:
//root@10.1.80.85/var/lib/git/loongson-32
(9)git合并远程分支
gitremoteaddloongsongit:
//git.printk.org/linux-loongson-release.git
gitfetchgit:
//git.printk.org/linux-loongson-release.git
gitmergeloongson/linux-loongson/v2.6.36
(10)git查看远程分支
gitremoteshowloongson
gitremoteshowgit:
//git.printk.org/linux-loongson-release.git
(11)、git删除错误提交的commit
方法:
gitreset--hard
gitpushoriginHEAD--force
(12)、其他:
根据–soft–mixed–hard,会对workingtree和index和HEAD进行重置:
gitreset–mixed:
此为默认方式,不带任何参数的gitreset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
gitreset–soft:
回退到某个版本,只回退了commit的信息,不会恢复到indexfile一级。
如果还要提交,直接commit即可
gitreset–hard:
彻底回退到某个版本,本地的源码也会变为上一个版本的内容
HEAD最近一个提交
HEAD^上一次
每次commit的SHA1值.可以用gitlog看到,也可以在页面上commit标签页里找到.
(13)、其他操作总结:
创建一个Git版本库
$cdproject/
$gitinit#创建.git目录(1.4.4.4版本之后用这个命令)
$gitadd.#将那些未被跟踪的文件加入版本库中
$gitcommit#将工作目录的变化提交到版本库中
Git将根据在版本库根目录中的.gitignore文件中列出的文件名,忽略对那些文件的跟踪,文件和目录名,可以用shell正则表达式来表示。
分支与合并
$gitcheckout-blinux-work#创建一个名叫"linux-work"的分支
$
$gitcommit-a
$gitcheckoutmaster#回到主分支
$gitmergelinux-work#将在linux-work分支上的变更集合并入master分支
#(适用于Git1.5以上版本)
$gitpull.linux-work#将在linux-work分支上的变更集合并入master分支
#(适用于Git的所有版本)
引入补丁
$gitapply<../p/foo.patch
$gitcommit-a
生成补丁
$
$gitcommit-a-m"commitmessage"
$gitformat-patchHEAD^#生成一个0001-commit-message.patch的文件
#(这里的意思是生成当前分支的最新版本到他的父版本HEAD^
#的所有文件的补丁,当然你应该知道HEAD的概念是什么)
网络功能
#从主版本库中克隆
foo$gitclonegit:
//git.kernel.org/pub/scm/git/git.git
foo$cdgit
#将本地变更推入远程版本库
foo$gitpushuser@:
my-repository.git/
#抓取远程版本库中的其中一个分支到本地版本库
foo$gitfetchuser@:
my-repository.git/remote-branch:
local-branch
#将远程版本库中的变化合并到本地
bar$gitpullgit:
//foo/repo.git/branch
#用git协议建立版本库服务
foo$cd/my/repository/
foo$touch.git/git-daemon-export-ok
foo$gitdaemon#这样其他人就可以通过git:
//your.machine/my/repository/.git/来抓取版本库
#建立一个裸版本库(没有工作目录的)
foo$mkdirmy-repo.git
foo$cdmy-repo.git
foo$git--bareinit
foo$chmoda+x.git/hooks/post-update#用HTTP协议来传输版本时要这样
#并且你需要用push命令来植入你的版本库的内容
查看各个版本
#用图形界面工具查看历史
foo$gitview#这个命令打开图形界面窗口,你可以从中看到版本的历史沿革关系
#查看日志
foo$gitlog#输出当前分支的日志
foo$gitlog-p#输出日志,并同时在每个提交信息之后显示补丁
#查看指定的变更
foo$gitshowHEAD#显示变更信息,差异比较位置,
#以及到当前分支最新状态的补丁。
查看历史记录
#根据名称查看
foo$gitlogv1.0.0#列举历史记录至标签"v1.0.0"
foo$gitlogmaster#列举"master"分支的历史记录
#根据名称关联查看
foo$gitshowmaster^#检查master分支的最后一个父版本的内容
foo$gitshowmaster~2#检查master祖父版本的最后内容
foo$gitshowmaster~3#检查master曾祖父的最后内容
#根据"gitdescribe"的输出
foo$gitshowv1.4.4-g730996f#你可以用"gitdescribe"命令得到这个输出
#根据哈希序列号(在git内部,所有的对象都是由哈希序列号来标记的)
foo$gitshowf665776185ad074b236c00751d666da7d1977dbe
foo$gitshowf665776#通常你只要输入前几个数字已经足够
#制作标签
foo$gittagv1.0.0#将当前HEAD制作为"v1.0.0"的标签
foo$gittaginterestingv1.4.4-g730996f#标记你感兴趣的东西(不是HEAD)
比较版本记录
#比较两个分支的差异
foo$gitdifforigin..master#比较origin与master的差异并输出至终端
foo$gitdifforigin..master>my.patch#输出到my.patch文件
#取得尚未提交的工作于版本记录的差异
foo$gitdiff--statHEAD
"摘草莓"补丁
foo$git