Web服务器
第一节 Apache服务器
& 1.1 简介
Apache是世界排名第一的Web服务器,根据著名的Web服务器调查公司Netcraft 的调查,世界上百分之五十以上的Web服务器都在使用Apache。纵观Apache,它为我们的网络管理员提供了丰富多彩的功能,包括目录索引、目录别名、内容协商、可配置的HTTP错误报告、CGI程序的SetUID执行、子进程资源管理、服务器端图象映射、重写URL、URL拼写检查以及联机手册man等。也就是说,如果您在Linux Server上成功安装配置了Apache之后,您的计算机也将随着Apache的生效而摇身一变,成为一台名副其实的Web Server,这种变化的确是激动人心的。伴随着自由软件发展的强大动力,我们有理由相信Apache的未来是一片光明的。
在Internet时代,外部主页的发布已经成为树立公司形象的一个重要手段,而内部主页也成为公司管理的主要方式。但是,要想实现这些功能,首先应该把我们的Linux Server配置成为一台强大的Web Server。时至今日,全球应用最广泛的Web服务器软件就是Apache,本章将详细介绍如何配置Apache服务器。希望各位同仁能够通过阅读本片文章达到理论实践双丰收的目的,在很短的时间里迅速成为一名出色的网络管理员。
& 1.2 所需资源
&1.2.1 所需包
RedHat6.2 服务器安装
&1.2.2 所需配置文件
/etc/httpd/conf/httpd.conf 系统自带,管理员配置
/etc/httpd/conf/access.conf 系统自带,不需要修改
/etc/httpd/conf/srm.conf 系统自带,不需要修改
& 1.3 配置方案
1./etc/httpd/conf/httpd.conf
说明:apache主配置文件
源文件:
ServerType standalone
#定义WebServer的启动方式为standalone,以增强其对大量访问的及时响应性
ServerRoot "/etc/httpd"
#指定包含httpd服务器文件的目录
LockFile /var/lock/httpd.lock
PidFile /var/run/httpd.pid
ScoreBoardFile /var/run/httpd.scoreboard
Timeout 300
#响应超时量,单位为秒
KeepAlive On
#允许用户建立永久连接
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
#要保留的空闲服务器进程的最小值
MaxSpareServers 20
#要保留的空闲服务器进程的最大值
StartServers 8
#系统启动时的守护进程数
MaxClients 150
#所能提供服务的最大客户端编号,大于它的部分被放入请求队列MaxRequestsPerChild 100
LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule env_module modules/mod_env.so LoadModule config_log_module modules/mod_log_config.so LoadModule agent_log_module modules/mod_log_agent.so LoadModule referer_log_module modules/mod_log_referer.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule status_module modules/mod_status.so LoadModule info_module modules/mod_info.so LoadModule includes_module modules/mod_include.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule dir_module modules/mod_dir.so LoadModule cgi_module modules/mod_cgi.so LoadModule asis_module modules/mod_asis.so LoadModule imap_module modules/mod_imap.so LoadModule action_module modules/mod_actions.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule anon_auth_module modules/mod_auth_anon.so LoadModule db_auth_module modules/mod_auth_db.so LoadModule digest_module modules/mod_digest.so LoadModule proxy_module modules/libproxy.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule perl_module modules/libperl.so LoadModule php3_module modules/libphp3.so ClearModuleList
AddModule mod_vhost_alias.c
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
#AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_db.c
AddModule mod_digest.c
AddModule mod_proxy.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_perl.c
AddModule mod_php3.c
Port 80
#定义服务器所使用的TCP的端口号
User nobody
Group nobody
#以上两行是分配给httpd的新用户的文件权限,出于安全的考虑把它们的权限设置成为最低。
ServerAdmin root@https://www.doczj.com/doc/974428178.html,
#设置Web管理员的邮件地址
ServerName WebOA
#定义客户端从服务器读取数据时返回给客户端的主机名,其缺省值是localhost,第一次安装Linux的时候经常这里出错。
DocumentRoot "/home/weboa/jakarta-tomcat/webapps/weboa"
#设置所有Apache文档的根目录,比如说,用户对
https://www.doczj.com/doc/974428178.html,/index.html的访问请求,Apache对它的响应是
/home/weboa/jakarta-tomcat/webapps/weboa/index.html
Options FollowSymLinks
AllowOverride None
Options Indexes Includes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all # 允许所有人访问
UserDir public_html
DirectoryIndex index.html index.htm index.shtml index.cgi
#设置多种成功访问主页的方式,为的是提高系统的容错性
AccessFileName .htaccess
Order allow,deny
Deny from all
UseCanonicalName On
TypesConfig /etc/mime.types
DefaultType text/plain
MIMEMagicFile share/magic
HostnameLookups Off
ErrorLog /usr/httpd/log/error_log
LogLevel warn
#定义那些错误类型被记录到错误日志中
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
#所有的LogFormat都用来定义日志中的条目
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /usr/httpd/log/access_log common
ServerSignature On
Alias /icons/ "/home/httpd/icons/"
#定义虚拟主机目录与系统目录的对应关系
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
#定义CGI目录
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README
HeaderName HEADER
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it
LanguagePriority en fr de
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps
AddType application/x-httpd-php .phtml
AddType application/x-tar .tgz
AddType text/html .shtml
AddHandler server-parsed .shtml
AddHandler imap-file map
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
Alias /perl/ /home/httpd/perl/
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
Alias /doc/ /usr/doc/
order deny,allow
deny from all
allow from localhost
Options Indexes FollowSymLinks
include /etc/httpd/conf/tomcat-apache.conf
Alias /netcard "/home/weboa/jakarta-tomcat/webapps/weboa/net_card" Options Indexes FollowSymLinks
allow from all
CacheSize 5
#定义缓存区大小,以KB为单位。可以根据需要和硬盘空间大小进行设置CacheGcInterval 4
#每隔4小时检查缓存区,如果已经超过CacheSize就删除文件CacheMaxExpire 24
#HTTP文件最多被保持24小时
CacheLastModifiedFactor 0.1
#定义HTTP文件失效期,缺省是0.1 ,意思是说失效期=离最近一次修改的时间X,比如离最近一次修改的时间是5小时,那么失效期就是5X0.1=0.5小时
CacheDefaultExpire 1
#这一指令提供一个缺省的时间(小时)来销毁缓存的文件,这些文件的最后更改时间不详。CacheMaxExpire 命令不覆盖这一设置
### 以下是为Apache增加SSL安全认证的方法 ##
## 以下是如何对一个目录进行登陆控制的方法 ##
1.在/etc/httpd/conf/httpd.conf中添加以下内容:
Alias /weboa/ "/home/weboa/"
Options Indexes MultiViews
AllowOverride authconfig
Order allow,deny
Allow from all
2.在/home/weboa目录下建立.htaccess文件
authname "shared files"
authtype basic
authuserfile /etc/httpd/conf/passwd
require valid-user
3.在/etc/httpd/conf目录下执行命令生成认证文件
htpasswd –c thj thj #创建认证文件和第一个名和密码
htpasswd weboa weboa #添加其他用户名和密码
### 以下是做虚拟主机的实现方法 ###
需要在/etc/httpd/conf/httpd.conf中添加下列内容:
Alias /webadmin/ "/home/weboa/webadmin/html/"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
NameVirtualHost 192.168.0.1 #虚拟域名的DNS服务器
ServerAdmin root@https://www.doczj.com/doc/974428178.html, #网管邮件地址
DocumentRoot /home/weboa/webadmin/html/ #服务器页面目录
ServerName https://www.doczj.com/doc/974428178.html, #服务器名称
需要在/var/named/name2ip.conf中添加的内容:
webadmin IN A 192.168.0.1
& 1.4 测试及管理办法
&1.4.1 测试方法
1.每当管理员更改了Apache的设置之后,都应执行
/etc/rc.d/init.d/httpd restart使得更改生效。
&1.4.2 管理方法
1.Apache提供大量的日志文件,当Apache出错的时候,管理员可以
根据htppd.conf中的ErrorLog定义的路径来诊断。具体方法是:tail
–f /var/log/httpd/apache/error_log
& 1.5 小结
Web服务是Internet服务器最基本的服务,Linux发行版中包含的Apache 软件是性能优良的Web服务器,也是Internet上最流行的Web服务器,由于它时刻都经历着无数使用者的测试,所以现行的Apache的默认选项已经是十分适合我们大家的了,你只需要更改其中几个与当前应用环境紧密相关的选项就可以达到你的目的了。
第二节 Tomcat服务器
& 2.1 简介
Jsp是sun在servlet基础上发展而来的一种新的web开发工具,在国外Ejb+jsp/servlet+应用服务器+数据库已经已经成为电子商务站点的流行架构。tomcat3.1实现了最新的servlet2.2和jsp1.1标准,sun也是推荐使用tomcat,本文介绍tomcat3.1在RedHat下的安装。
& 2.2 所需资源
&2.2.1 所需包
1. jdk1_2_2-linux-i386.tar.gz
https://www.doczj.com/doc/974428178.html,
2. jakarta-tomcat.tar.gz,
https://www.doczj.com/doc/974428178.html,/builds/tomcat/release/v3.1/bin/
3. mod_jserv.so
https://www.doczj.com/doc/974428178.html,/builds/tomcat/release/v3.1/bin/linux/i 386/
&2.2.2 所需配置文件
/etc/profile
/usr/local/jakarta-tomcat/conf/server.xml
/usr/local/jakarta-tomcat/conf/tomcat.properties
& 2.3 安装步骤
1. 安装JDK
cd /usr/local
tar zxvf /root/jdk1_2_2-linux-i386.tar.gz
mv jdk1.2.2 jdk
2. 修改/etc/profile环境文件
添加以下内容:
JAVA_HOME=/usr/local/jdk
CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib
PATH=$PAHT:/usr/local/jdk/bin:/usr/local/jre/bin
export JAVA_HOME
export CLASSPATH
3. 安装Tomcat
cd /usr/local
tar zxvf /root/jakarta-tomcat.tar.gz
4. 整和Apache和Tomcat
cd /home/httpd
mkdir libexec
cp /root/mod_jserv.so /home/httpd/libexec
cp /usr/local/jakarta-tomcat/conf/tomcat.conf /etc/httpd/conf
vi /etc/httpd/conf/httpd.conf
在文件末尾添加以下内容:
Include /etc/httpd/conf/tomcat-apache.conf
& 2.3 配置和管理TOMCAT
1. /usr/local/jakarta-tomcat/conf/server.xml
& 2.4 测试及管理办法
&2.4.1 测试方法
1.在服务器上任意目录下键入java,看看有没有执行
2.浏览http://192.168.0.1:8080看看有没有那只可爱的小猫就成拉!!
3.浏览http://192.168.0.1/examples/jsp/index.html来测试Apache和Tomcat是否成功整和。
& 2.5 其他参考资料
1. 关于tomcat的信息请到https://www.doczj.com/doc/974428178.html,
2. 其他jsp方面的信息可以到https://www.doczj.com/doc/974428178.html,/jsp
& 2.6 小结
Tomcat和Jserv之间的区别是什么? Tomcat==Jserv,不是吗?
这是一种普通的误解。Jserv是被建立为与阿帕奇一起使用的Servlet API 2.0兼容的容器。 Tomcat是完全重写并且兼容Servlet API 2.2和JSP 1.1的一种容器。
Tomcat使用了一些Jserv的代码,尤其是Jserv的阿帕奇服务器适配器(adapter),但是相似的地方仅此而已。
第三节 Apache+Jserv整和
一、需要的源码包:
jdk-1_2_2_006-linux-i386.tar.gz
jsdk20-solaris2-sparc[1].tar.Z
ApacheJServ-1.1.2.tar.gz
二、安装过程
1、安装jdk1.2.2
(1) 解开压缩包
tar xvzf jdk1_2_2_006-linux-i386.tar.gz
(2) 目录的处理
ln -s jdk1.2.2 jdk
ln -s jdk/jre jre
(3) 设置$JAVA_HOME,$CLASSPATH
vi /root/.bash_profile
加入:
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib
export CLASSPATH
PATH=$PATH:/usr/local/jdk/bin:/usr/local/jre/bin
注:JDK的安装到此结束。
2.安装JSDK
(1) tar zxvf jsdk20-solaris2-sparc[1].tar.Z
(2) 将产生的JSDK2.0目录移到 /usr/local/JSDK2.0
mv JSDK2.0 /usr/local/JSDK2.0
注:JSDK的安装到此结束。
3.Apache和Jserv的静态混合编译
所谓的静态编译是指将Jserv编译进apache里
(1) tar xvzf apache_1.3.12.tar.gz
tar xvzf ApacheJServ-1.1.2.tar.gz
(2) cd apache_1.3.12
./configure --prefix=/usr/local/apache
(3) 配置apache jserv编译参数
cd ../ApacheJServ-1.1.2
./configure \
--prefix=/usr/local/jserv \
--with-apache-src=../apache_1.3.12 \
--with-jdk-home=/usr/local/ jdk1.2.2 \
--with-java-platform=2 \
--with-JSDK=/usr/local/JSDK2.0/lib/jsdk.jar
make
make install
(4) 编译apache和apache jserv
cd ../apache_1.3.12
./configure \
--prefix=/usr/local/apache \
--activate-module=src/modules/jserv/libjserv.a
make
make install
(5) 执行/usr/local/apache/bin/httpd -l检查一下mod_jserv是否编译进apache了
(6) 更改配置文件 /usr/local/apache/conf/httpd.conf
添加 Include /usr/local/jserv/etc/jserv.conf
(7) 更改配置文件 /usr/local/jserv/etc/jserv.conf
SetHandler jserv-status
order deny,allow
deny from all
加入你的信任主机allow from xxxx
这样在信任主机上通过http://yourserver/jserv/(注意后面这个"/"不能少)可以看到你的apache jserv的配置信息。
接着在/usr/local/jserv/servlets下放入你自己的servlet class实验一下效果吧,测试结果表明在redhat6.2下没有中文显示问题,一切ok!
其他关于servlet zone的设置、load balance等等请参考apache jserv文档和https://www.doczj.com/doc/974428178.html,网站
注:Apache和Jserv混合编译到此结束
三、最后的测试:
1.启动apache:/usr/local/apache/bin/apachectl start
2.用浏览器测试http://yourserver/servlets/IsItWorking 看见了Yes,It's working!了吗?你成功了!!
第四节 Linux下Apache、php3、MySQL的整合
一、所需的安装包
apache_1.3.19.tar.gz
php-4.0.4.tar.gz
mysql-3.23.32.tar.gz
注意:以上均为源代码而非RPM包
二、软件安装
1. 安装MySQL
(1) 解开压缩包
cd /usr/local
tar -zvxf mysql-3.23.32.tar.gz
(2) 将产生mysql-3.23.32目录移到/usr/local/mysql
mv mysql-3.23.32 /usr/local/mysql
(3) 编译MySQL
cd /usr/local/mysql
./configure --prefix=/usr/local/mysql
make
make install
(4) 安装数据库文件
/usr/local/mysql/scripts/mysql_install_db
/usr/local/mysql/bin/safe_mysqld &
(5) MySQL授权操作
MySQL的存取控制技术功能强大,比Postgres更加具有灵活性。MySQL采用的用户名和密码的加密算法与Unix系统不尽相同,其用户名可以长达16个字符。先以root登陆MySQl,然后在MySQL的提示符下键入grant all privileges on *.* to thj@localhost identified by ‘thj’ with grant option; 这样,无论用户thj从什么地方登陆到这台服务器都可以使用MySQL。
(6) MySQL数据库简单操作语句
创建数据库
命令:create database 数据库名;
删除数据库
命令:dro p database 数据库名;
查询MySQL中都有什么数据库
命令:show databases;
更改当前使用的数据库
命令:use tbl_name
创建数据表
命令:create table tbl_name ( column_specs );
说明:tbl_name 数据表名 column_specs 表中列的说明查询指定的数据表的结构
命令:describe tbl_name;
查询数据库中都有什么数据表
命令:show tables;
增加新记录
命令:insert into tbl_name (col_name1,col_name2,…) values(values1,values2,….)
说明:insert语句简单易用,但是它也有一个缺陷,就是每次只能插入一条记录。
批量装载数据
命令:load data local infile “filename.txt” into table tbl_name; 说明:MySQl的版本不得低于3.22.15,否则load data local不起作用。该语句实际上是调用了/usr/bin/mysqlimport。
检索信息
命令:select 要选择的东西 from 一个或多个表 where 数据必须满足的条件注:在MySQL中,每键入一条命令之后,在命令行的结尾都要敲入“;”,标志是一条命令,或者敲回车之后再敲go,提示系统执行上边的命令;另外,在多数关于MySQL的参考书中,命令都为大写,实际上小写也可以;还有,use语句可以不加“;”,这是所有MySQL语言中唯一一个不需要加“;”就可以执行的语句。
注:MySQL的安装到此结束
2. Apache、PHP3的混合编译
(1) 解开压缩包
cd /usr/local
tar xvzf apache_1.3.19.tar.gz
tar xvzf php-4.0.4.tar.gz
mv apache_1.3.19.tar.gz apache
mv php-4.0.4.tar.gz php
(2) 把Apache的安装目录定为/usr/local/apache
cd apache
./configure --prefix=/usr/local/apache --with-port=8000
(3) 配置支持MySQL、作为Apache功能模块、跟踪变量有效
cd ../php
./configure --with-mysql=/usr/local/mysql --with- apache=../apache --enable-track-vars –with-pgsql=/usr/lib/pgsql
--prefix=/usr/local/apache/php –
with-config-file-path=/usr/local/apache/php
make
make install
注:PHP的安装到此结束
(4) 配置Apache,加入PHP4的模块
cd ../apache
cp /usr/local/php/libs/libphp4.a \
/usr/local/apache/src/modules/php4
./configure --prefix=/usr/local/apache --activate-
module=src/modules/php4/libphp4.a --with-port=8000
make
make install
注:APACHE安装完毕
3.更改配置
(1) 把php.ini文件拷到/usr/local/apache/php目录下.
cd ../php
cp php.ini-dist /usr/local/apache/php/php4.ini
(2) 更改Apache的配置文件
cd /usr/local/apache/conf
vi httpd.conf
找到 AddType application/x-httpd-php .php4 把它前头的#号给删了当然也可加一行 AddType application/x-httpd-php3.asp 这样用FrontPage编辑会方便一点。
最后运行/usr/local/apache/bin/apachectl start启动apache进程。第五节为Apache增加SSL安全保护
& 5.1 简介
Netscape公司提出的安全套接层(Secure Sockets Layer)的概念,简称SSL。顾名思义,这是一个建立在Socket层的安全协议,它屏蔽了高层协议如telnet、ftp、http的区别,把安全建立在了传输之上。目前该协议以被广泛采纳,它所定义的很多功能都成了下一代IP协议IPV6的一部分。
& 5.2 所需资源
&1.2.1 所需包
1. Apache 1.3.19.tar.gz
下载网址:
https://www.doczj.com/doc/974428178.html,/pub/net/apache/dist/apache_1.3.17.tar.gz 2. openssl 0.9.6 要用他来生成密钥和签署证书
下载网址:
https://www.doczj.com/doc/974428178.html,/source/openssl-0.9.6.tar.gz
3. mod_ssl 2.8.0
下载网址:
https://www.doczj.com/doc/974428178.html,/source/mod_ssl-2.8.0-1.3.19.tar.gz &1.2.2 安装过程
1. 编译 OpenSSL:
cd /usr/local
tar zxvf openssl-0.9.6.tar.gz
cd /usr/local/openssl-0.9.6
./config --prefix=/usr/local/openssl
#注意,这里是 config 而不是 configure。
make
make test
make install
2. 编译MOD_SSL
cd /usr/local
tar zxvf mod_ssl-2.8.0-1.3.19
cd /usr/local/mod_ssl-2.8.0-1.3.19
./configure --with-apache=../apache_1.3.19
3. 编译apache
cd /usr/local
tar zxvf apache_1.3.19
cd /usr/local/apache_1.3.19
SSL_BASE=../openssl-0.9.6 \
./configure --prefix=/usr/local/apache_1.3.19 \
--enable-module=ssl \
--enable-shared=ssl
make
4.生成CA
make certificate TYPE=custom
说明:这一步要生成你自己的 CA (如果你不知道,我也不能细说了,简单地说就是认证中心),和用它来为你的服务器签署证书。
STEP 0:
选择算法,使用缺省的 RSA
STEP 1:
生成 ca.key,CA的私人密钥
STEP 2:
为CA生成X.509的认证请求 ca.csr
要输入一些信息:
Country Name: cn 国家代码,两个字母
State or Provice name: An Hui 省份
Locality Name: Bengbu 城市名
Organization Name: Home CA 组织名,随便写吧
Organization Unit Name: Mine CA
Common Name: Mine CA
Email Address: sunstorm@https://www.doczj.com/doc/974428178.html, 我的Email
Certificate Validity: 4096 四千多天,够了吧
STEP 3:
生成CA的签名,ca.crt
STEP 4:
生成服务器的私人密钥,server.key
STEP 5:
生成服务器的认证请求,server.csr
要输入一些信息,和STEP 2类似,
不过注意 Common Name是你的网站域名,如 https://www.doczj.com/doc/974428178.html,
Certificate Validity不要太大,365就可以了。
STEP 6:
为你的服务器签名,得到server.crt
STEP 7-8:
为你的 ca.key 和 server.key 加密,要记住pass phrase。
下面完成apache的安装
make install
vi /usr/local/apache/conf/httpd.conf
修改BindAddress 和 ServerName
如果要改变 DocumentRoot 要记得把httpd.conf里SSL Virtual Host Context 部分的DocumentRoot设定也改掉。
SSLCertificateFile和SSLCertificatKeyFile的设定也在SSL Virtual Host Context部分。
它可能是这样设定的:
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt SSLCertificateKeyFile
/usr/local/apache_1.3.19/conf/ssl.key/server.key
要注意ssl.key ssl.crt等目录和文件的权限!
所有的key,csr,crt,prm文件都应该设为 400 属性!
& 5.3 手工签署证书
虽然在安装MOD_SSL时已经使用 make certificate 命令建立了服务器的证书签名,但是有时你可能需要改变它。
当然有很多自动的脚本可以实现它,但是最可靠的方法是手工签署证书。首先我假定你已经安装好了openssl和MOD_SSL,如果你的
openssl安装时的prefix设置为/usr/local/openssl,那么把
/usr/local/openssl/bin加入执行文件查找路径。还需要MOD_SSL源代码中的一个脚本,它在MOD_SSL的源代码目录树下的pkg.contrib目录中,文件名为sign.sh。将它拷贝到 /usr/local/openssl/bin 中。
先建立一个 CA 的证书,
首先为 CA 创建一个 RSA 私用密钥,
[S-1]
openssl genrsa -des3 -out ca.key 1024
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件,将文件属性改为400,并放在安全的地方。
[S-2]
chmod 400 ca.key
你可以用下列命令查看它的内容,
[S-3]
openssl rsa -noout -text -in ca.key
利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
[S-4]
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: An Hui 省份名称
Locality Name: Bengbu 城市名称
Organization Name: Family Network 公司名称
Organizational Unit Name: Home 部门名称
Common Name: Chen Yang 你的姓名
Email Address: sunstorm@https://www.doczj.com/doc/974428178.html, Email地址
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。
[S-5]
chmod 400 ca.crt
你可以用下列命令查看它的内容,
[S-6]
openssl x509 -noout -text -in ca.crt
下面要创建服务器证书签署请求,
首先为你的 Apache 创建一个 RSA 私用密钥:
[S-7]
openssl genrsa -des3 -out server.key 1024
这里也要设定pass phrase。
生成 server.key 文件,将文件属性改为400,并放在安全的地方。[S-8]
chmod 400 server.key
你可以用下列命令查看它的内容,
[S-9]
openssl rsa -noout -text -in server.key
用 server.key 生成证书签署请求 CSR.
[S-10]
openssl req -new -key server.key -out server.csr
这里也要输入一些信息,和[S-4]中的内容类似。
至于 extra attributes 不用输入。
你可以查看 CSR 的细节
[S-11]
openssl req -noout -text -in server.csr
下面可以签署证书了,需要用到脚本 sign.sh
[S-12]
sign.sh server.csr
就可以得到server.crt。
将文件属性改为400,并放在安全的地方。
[S-13]
chmod 400 server.crt
删除CSR
[S-14]
rm server.csr
最后apache设置
如果你的apache编译参数prefix为/usr/local/apache,
那么拷贝server.crt 和 server.key 到 /usr/local/apache/conf 修改httpd.conf
将下面的参数改为:
SSLCertificateFILE /usr/local/apache/conf/server.crt SSLCertificateKeyFile /usr/local/apache/conf/server.key
可以 apachectl startssl 试一下了。
& 5.4 测试及管理办法
cd /usr/local/apache_1.3.19
bin/apachectl startssl
提示输入pass phrase(就是你前面输入的,不知道你还记不记得)
输入后就启动了一个支持SSL的apache
在IE里输入https://192.168.0.1/ 试试,注意是https而不是http!
& 5.5 小结
用电子认证服务器,可以进行公共密钥认证的管理、签署和废止。她使用的是X.509标准。
使用电子认证服务器,就可以自己管理公共密钥的认证,而不用依赖国外的CA服务中心。我们建立一个认证服务中心,就是为了能在我们的中国多媒体公众信息网上使用电子认证,以保证重要信息的安全。同时扩展该网的应用范围,把它建设成一个高速有效的企业单位联网平台。
SVN服务器配置(svn1.4.6+apache2.2.8 no ssl)
一、软件准备
1.Apache(apache_
2.2.8-win32-x86-no_ssl.msi) http://apache.mirror.ph
https://www.doczj.com/doc/974428178.html,/httpd/binaries/win32/
2.Subversion : (1.4.6)
https://www.doczj.com/doc/974428178.html,/files/documents/15/41687/svn-1.4.6-setup .exe
3.TortoiseSVN (1.
4.8)
https://www.doczj.com/doc/974428178.html,/tortoisesvn/TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi?download
4.eclipse 客户端 site-1.2.4.zip
注意:如果要安装apache服务,一定需要对应subversion服务端的版本
Subversion(1.4.6) + Apache_2.2.8 no ssl
二、客户端安装 1> 需要site-1.2.4.zip 包,解压缩后有个site-1.2.4的文
件夹。
2> Eclipse菜单 install…> ,选择第二个选项 3>勾选几个选项后,finish 完成eclipse – SVN 客户端的安装 4> TortoiseSVN (1.4.8)的安装 三、服务端安装(只配置subversion) 1> 直接安装 svn-1.4.6-setup.exe 服务端程序 2> (eg:)在f:\下面新建文件夹svn;在svn文件夹下建立版本库svnServer 的文件夹,然后用TortoiseSVN建立版本库。 3> 如何启动svn服务(有两种方式) 1) 通过命令行方式启动 : 进 subversion bin安装目录> svnserve -d -r f:\svn\svnServer )通过windows服务方式启动: 步骤一>需要添加服务到windows中: svnservice -install -d -r f:\svn\svnServer需要卸载windows服务使用: svnservice –remove 步骤二>需要SVNService.exe的服务程序,在命令行中加入。 3) 配置用户名,密码,权限在新建的版本库f:\svn\svnServer中,进入conf文 件夹,该文件夹下面有三个文件进行配置。 svnserve.conf 1)加anon-access = none 任何访问时使用验证 2)打开password-db = passwd 进行用户名密码验证 3)打开authz-db = authz 进行权限验证 Passwd [users] # harry = harryssecret # sally = sallyssecret admin = 123 zhangchao = 123 authz [groups] group_admin = admin group_user1 = zhangchao [/] @group_admin = rw [/zhangchao] @group_user1 = rw 注意: 在TortoiseSVN 中repo-browser 查询时,在url 填写时需填入完整的目录名进行权限查看,否则无法打开. 本地查看使用url : svn://localhost/ 2,下载完成之后,把svn-win32-1.4.6.zip解压到C:\Program Files\svn-win32-1.4.6,目录结构如下图所示: 3,创建储存库 1、前言 花了72小时,终于把 Subversion 初步掌握了。从一个连“什么是版本控制”都不知道的门外汉,到配置出精确至每目录访问的入门者,中间还卡了一天时间。其中费了许多气力,摸索实验了多次,还差点放弃了,但是收获是巨大的。现把我的配置和学习过程写下来,供大家参考,也让初学者少走弯路。 以下仅以 Windows 平台为例讲解,Unix/Linux 平台请参考相关资料。如其中有谬误的地方,包括错别字,请联系我修订。 技术在分享中进步! 2、基本概念 2.1、什么是版本控制 简单点来说,版本控制就是数据仓库,它可以记录你对文件的每次更改。这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂,简单的恢复版本操作就搞定一切。 2.2、什么是 Subversion Subversion是一个自由/开源版本控制系统,它管理文件和目录可以超越时间。一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。从这个方面看,许多人把版本控制系统当作一种“时间机器”。 Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作。进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。 一些版本控制系统也是软件配置管理(SCM)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。然而,Subversion不是这样一个系统,它是一个通用系统,可以管理任何类型的文件集,对你这可能是源代码,对别人,可能是一个货物报价单或者是书稿等。 2.3、版本库(repository) Subversion 的核心就是 repository ,中文翻译成“版本库”。就是位于服务器端,统一管理和储存数据的地方。 3、安装配置 3.1 安装独立服务器 SVNServer 环境 OS:Windows XP SP2 Web:Apache 2.2.6 SVN:svn-win32-1.4.6 一、准备工作 1、获取 Subversion 服务器程序 到官方网站(https://www.doczj.com/doc/974428178.html,/)下载最新的服务器安装程序。目前最新的是1.4.6版本,具体下载地址在: https://www.doczj.com/doc/974428178.html,/servlets/ProjectDocumentList?folderID=81 00&expandFolder=8100&folderID=91,注意找 for apache 2.2.x 版本的。 2、获取 TortoiseSVN 客户端程序 所有资料来源于 https://www.doczj.com/doc/974428178.html, 我用Subversion - SVN|TortoiseSVN下载安装配置使用技术交流社区 SVN 服务端安装和配置 1.Windows环境下基于 Apache 的SVN 服务器安装及配置 1.1安装 1.1.1安装Apache (1)下载Apache 地址https://www.doczj.com/doc/974428178.html,/download.cgi 注意:Apache低于2.0.54的Windows版本的存在编译问题,低于2.0.54的版本不能与Subversion 1.2一起工作。2.2.X目前不能很好支持SVN 1.4.3。当前建议下载Apache 2.0.59 (2) 安装 下载完成后运行apache_2.0.59-win32-x86-no_ssl.msi,根据提示进行操作。遇到系统要求输入SERVER的URL时,如果你的服务器没有DNS名称,请直接输入IP地址。 注意:如果你已经有了IIS或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录\Apache Group\Apache2\conf,打开httpd.conf。编辑文件的Listen 80为其他可用的端口,例如Listen 81,然后重新启动-这样就不会那个问题了。 (3)检查 安装完成后浏览http://localhost/若成功,可看到apache页面。 1.1.2安装Subversion (1)下载 Subversion 地址:https://www.doczj.com/doc/974428178.html,/servlets/ProjectDocumentList?folderID=91(2)安装 运行svn-1.4.3-setup.exe 安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。 (3)后续 步骤1 从C:\Program Files\Subversion\bin 中将 mod_authz_svn.so mod_dav_svn.so复制到 C:\Program Files\Apache Group\Apache2\modules下 intl3_svn.dll libdb*.dll C:\Program Files\Apache Group\Apache2\bin下 步骤2 找到C:\Program Files\Apache Group\Apache2\conf\httpd.conf文件去掉如下几行的注释(删除 '#'标记): SVN服务器端配置库创建(Express版) 1创建SVN配置库目录 在某一路径下,点击鼠标右键-新建-文件夹,创建一个文件夹,并修改目录名(如MySVN,在本文档中称之为SVN配置库)。右键点击该目录,选择TortoiseSVN-Create repository here。(备注:“repository”是英文“储藏室”的意思) 1-1Create repository创建SVN配置库 2对SVN配置文件进行配置 SVN配置库目录建立后,需要对配置文件进行配置。进入配置库目录下的conf目录,其中有authz、passwd、svnserve三个文件,anthz配置用户权限、passwd配置用户名与密码、svnserve即为配置文件的配置文件。在这三种文件中“#”为注释行起始符号。另外需要注意的是,配置语句的每一行不能有多余的空格。 2.1svnserve文件的配置 将整个文件中的内容替换为以下内容即可。 [general] anon-access = read auth-access = write password-db = passwd //定义passwd文件为用户名-密码数据库 authz-db = authz //定义authz文件为权限管理数据库 2.2passwd文件配置 passwd文件主要用于设置用户名与密码,其语法格式为“用户名 = 密码”。如添加用户名为user,密码为pwd的用户,则可以使用如下方法实现: [users] user = pwd //定义用户user,其密码为pwd 2.3authz文件配置 authz文件主要用于设置用户所属群组,配置用户权限及群组权限。群组信息在[groups] 标签下配置;某个目录的读写权限则在[某路径]标签下配置,r表示可读权限,w 表示可写权限,rw表示可读可写权限。假设passwd文件中定义了A、B、C、D四个用户,下面将进行一些配置并对这些配置的含义进行说明。 [groups] groupA = A,B //定义群组groupA,它具有两个用户A、B groupB = C,D //定义群组groupB,它具有两个用户C、D [/] * = r //在根目录所有用户有只读权限 1 概述 本文详细描述了Ubuntu环境下,基于apache2的SVN服务器的搭建过程。 2 安装Ubuntu 11.10服务器 可以是Ubuntu 11.10 Server或者是Desktop。本教程以root账户作为本服务器日常管理帐户。另外,为了方便后续的说明,假设服务器的ip地址为192.168.1.100。 安装完成后,需要先运行更新管理器,以获得最新的源列表。 3 安装Apache服务器 在新立得软件包管理器里面,搜索apache2并选择安装Apache2,libapache2-svn。安装完成后,确认能通过http访问http://192.168.1.100。正常情况下,会得到如下界面: 说明apache已经正常工作了。 4 创建SVN服务器 4.1 安装SVN 在新立得软件包管理器里面,搜索subversion,并选择安装subversion,subversion-tools。安装好之后,进入下一步。 4.2 增加组 sudo addgroup subversion sudo usermod -G subversion -a www-data sudo usermod -G subversion -a root 当然,修改组也可以直接修改组文件: sudo vi /etc/group。 然后需要注销(我都是直接重新启动)再登录以便能够真正成为subversion 组的一员。 4.3 创建SVN仓库 现在执行下面的命令 # cd /home # sudo mkdir svn # sudo chown -R www-data:subversion svn # sudo chmod -R g+rws svn 最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。 下面的命令用于创建SVN 文件仓库: #sudo svnadmin create /home/svn 4.4 配置Apache服务器 先备份一下Apache2的配置文件,执行如下命令: # sudo cp -R /etc/apache2 /etc/apache2_bak 通过WebDAV 协议访问SVN 文件仓库,您必须配置您的Apache 2 Web 服务器。您必须加入下面的代码片段到您的/etc/apache2/mods-available/dav_svn.conf中:(加在文件最后面即可) 1.安装服务器版(VisualSVN-Server-2.1.6.msi),下图为本机系统及部分信息,本机做了RAID0+1(装了四块硬盘,其中两块为备份盘,目的是正常用的两块硬盘使用过程中如果突然坏掉,另两块硬盘将保存坏硬盘的数据,同时顶替掉坏硬盘进行工作)。 2.双击打开VisualSVN-Server-2.1.6.msi, 点next 后如下图 在下面选项打勾,点next,出现下图 选择中如如选项,点next 后出现下图 上图中,Location:项为程序安装目录,Repositories:后面为项目的保存目录(以后项目就保存在这个目录下了),点后面的Browse…可以修改位置,然后点netxt,,出现下图 点击install,程序开始安装,安装过程中如果出现提示,可能是电脑名称为中文,最好提前改为英文。安装正常情况下出现下图: 点Finish,即完成安装,VisualSVN会运行。出现下图 VisualSVN Server的配置和使用方法(转) 1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server 为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion 和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。 2.为什么不用TFS? 回答: S V N服务器端配置库创建(E x p r e s s版)1创建SVN配置库目录 在某一路径下,点击鼠标右键-新建-文件夹,创建一个文件夹,并修改目录名(如MySVN,在本文档中称之为SVN配置库)。右键点击该目录,选择TortoiseSVN-Create repository here。(备注:“repository”是英文“储藏室”的意思) 1-1Create repository创建SVN配置库 2对 SVN authz、passwd即为配置 每一2.1 2.2 passwd user,密码为pwd的用户,则可以使用如下方法实现: [users] user = pwd //定义用户user,其密码为pwd 2.3authz文件配置 authz文件主要用于设置用户所属群组,配置用户权限及群组权限。群组信息在[groups] 标签下配置;某个目录的读写权限则在[某路径]标签下配置,r表示可读权限,w表示可写权限,rw表示可读可写权限。假设passwd文件中定义了A、B、C、D四个用户,下面将进行一些配置并对这些配置的含义进行说明。 [groups] groupA = A,B //定义群组groupA,它具有两个用户A、B groupB = C,D //定义群组groupB,它具有两个用户C、D [/] * = r //在根目录所有用户有只读权限 A = rw //在根目录用户A具有读写权限 @groupB = rw //在根目录群组groupB具有读写权限 [/目录A] C = w 3 一个SVN配置库 1) 2)目录下存 3) SVN 过程中对SVN配置进行过修改(如添加一个新用户),则需要重启该SVN服务,即点击停止再点击开始。 3-1mySwapper配置界面 4进行Check-out 下面在客户端建立一个文件夹,进行SVN Checkout后,即可进行文件的上传、下载了。相信下面的工作大家都很熟悉拉。 4-1进行Check-out SVN精细权限控制 原文链接: https://www.doczj.com/doc/974428178.html,/ayifa/blog/item/a7708c1885c221b54bedbc40.html 本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义。除此之外的其他配置、安装等内容,不是本文重点,读者若有什么疑问,请参考后面“参考文献”中列出的一些文档。 这里首先要注意一点,任何配置文件的有效配置行,都 “不允许存在前置空格” ,否则程序可能会出错,给你一个 “Option expected”的提示。也就是说,如果你直接从本文的纯文本格式中拷贝了相关的配置行过去,需要手动将前置的4个空格全部删除。当然了,如果你觉得一下子要删除好多行的同样数目的前置空格是一件苦差使,那么也许 UltraEdit 的“Column Mode”编辑模式,可以给你很大帮助。 svnserve.conf “arm\conf\svnserve.conf” 文件,是 svnserve.exe 这个服务器进程的配置文件,我们逐行解释如下。 首先,我们告诉 svnserve.exe,用户名与密码放在 passwd.conf 文件下。当然,你可以改成任意的有效文件名,比如默认的就是 passwd: password-db = passwd.conf 接下来这两行的意思,是说只允许经过验证的用户,方可访问代码库。 那么哪些是“经过验证的”用户呢?噢,当然,就是前面说那些在 passwd.conf 文件里面持有用户名密码的家伙。这两行的等号后面,目前只允许 read write none 三种值,你如果想实现一些特殊的值,比如说“read-once”之类的,建议你自己动手改源代码,反正它也是自由软件: anon-access = none auth-access = write 接下来就是最关键的一句呢,它告诉 svnserve.exe,项目目录访问权限的相关配置是放在 authz.conf 文件里: SVN独立服务器与eclipse客户端的安装与配置 一、服务端配置 1、安装subversion 例如:Setup-Subversion-1.6.15.msi,按缺省方式安装即可 2、在资源管理器中创建svn服务根目录。 如D:\svn\Repositories 3、在svn根目录下建立一个代码版本仓库 进入dos窗口,执行以下命令: svnadmin create d:\svn\Repositories\repository 该命令会在根目录d:\svn\Repositories\下生成一个叫repository的目录,目录结构如下: 4、启动服务 (1)、命令行启动: svnserve -d -r D:\svn\Repositories 注: -d 参数效果同于—daemo,告诉svnserve 以守护进程方式运行,这样在手动终止之前不会退出。 -r 参数效果同于--root,告诉svnserve 将会在端口3690 等待请求,设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL 的时间 如果不加root 参数,服务url 为:svn://localhost/ svn/ repository 而如果加上root 参数,服务url 为:svn://localhost/ repository 通常svn服务器都是远程的,所以记得将localhost换成实际的svn服务器的ip 另外,dos窗口不能关,否则服务将停止 不要关闭命令行窗口,关闭窗口会把svnserve 停止。 (2)、批处理文件启动 可直接创建.bat 文件来快速启动svn服务: @echo on @cd\ @cd C:\Program Files\Subversion\bin @rem start svn service Start svn service... @svnserve -d -r d:\svn\ Repositories\repository The svn sevice is run... :end 5、配置用户和权限 (1)、编辑d:\svn\Repositories\repository\conf下的svnserve.conf 去掉password-db=passwd前的注释 (2)、修改同目录下的passwd文件,在[users]下加上授权用户和密码,如: Username1 =password1 环境 OS:Windows XP SP2 Web:Apache 2.2.6 SVN:svn-win32-1.4.6 一、建立版本库(Repository) 开始建立版本库。首先建立 e:\svn 空文件夹作为所有版本库的根目录。然后,开始->运行->cmd打开窗口 进入命令行并切换到subversion的bin目录。 输入如下命令: svnadmin create E:\svn\repos1 此命令在 E:\svn 下建立一个版本库 repos1 。repos1 下面会自动生成一些文件夹和文件。我们也可以使用 TortoiseSVN 图形化的完成这一步: 先建立空目录 E:\svn\repos1 ,注意一定是要空的。 在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here...” 可以选择版本库模式,这里使用默认的FSFS即可 创建了一系列文件夹和文件,同命令行建立的一样。 这里面的版本库地址和名称可以根据实际需要更改。 二、运行独立服务器 此时 subversion 服务还没有开始,只是通过它的命令建立了版本库。继续在刚才的命令窗口输入: svnserve.exe –daemon svnserve 将会在端口 3690 等待请求,--daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把svnserve 停止。 为了验证svnserve正常工作,使用TortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入: svn://localhost/svn/repos1 点 OK 按钮后就可以看见 repos1 版本库的目录树结构了,只不过这时 repos1 是个空库。你也可以使用--root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入 svnserve URL的时间: svnserve.exe --daemon --root drive:\path\to\repository 以前面的测试作为例,svnserve 将会运行为: svnserve.exe --daemon --root e:\svn 然后TortoiseSVN中的版本库浏览器URL缩减为: svn://localhost/repos1 三、配置用户和权限 用文本编辑器打开E:\svn\repos1\conf目录,修改 svnserve.conf: 将: # password-db = passwd 改为: password-db = passwd 即去掉前面的 # 注释符,注意前面不能有空格。 然后修改同目录的passwd文件,增加一个帐号: 将: [users] # harry = harryssecret # sally = sallyssecret 增加帐号: [users] #harry = harryssecret #sally = sallyssecret 1、Windows下SVN服务器的安装配置 SVN全称Subversion,是一款开源的版本控制系统,支持在本地访问或通过网络访问数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支等功能,SVN还增加了追踪移动和删除的能力。此外,它支持非ASCII文本和二进制数据,所有这一切都使SVN不仅对传统的编程任务非常有用,同时也适用于Web开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。 1.1 SVN的基本原理 SVN是一种集中的分享信息的系统,它的核心是版本库,它存储所有的数据,版本库按照文件树形式存储数据,包括文件、目录。任意数量的客户端可以连接到版本库,读写这些文件。通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。 SVN可以通过多种方式访问:本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个URL。“版本库访问URL”描述了不同的URL模式对应的访问方法,如表7-1所示: 表7-1:不同的URL模式对应的访问方法 修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N此提交。因此,当我们在使用SVN时,如果谈及“foo.c的修订号5”时,实际的意思就是“在修订号为5时的foo.c”。修订号N和M并不一定表示一个文件是不同的。其他的版本控制工具,例如CVS,则使用每一个文件一个修订号的做法。 1.2 SVN的下载与安装 读者可以下载SVN的服务器安装文件:svn-1.4.0-setup.exe; Windows客户端安装文件:TortoiseSVN-1.6.11.20210-win32-svn-1.6.13; 在客户端使用方面可以使用TortoiseSVN客户端,当作为软件开发人员一般会在Eclipse 开发工具中按照SVN相关插件。 Win7 32位下安装SVN服务器及客服端 1.下载并安装服务器端SVN 到https://www.doczj.com/doc/974428178.html,/packages.html页面,由于我是32位的系统所以选择Windows列表下的Win32Svn (32-bit client, server and bindings, MSI and ZIPs; maintained by David Darj)下载目前最新版的SVN服务器端Setup-Subversion-1.7.5; 安装步骤如下: →Next →Next 我的安装路径是D盘→Next →Next →Install →Finish 打开运行→输入cmd回车→svn –version→显示如下 2.下载并安装客户端SVN 在https://www.doczj.com/doc/974428178.html,/downloads.html下载客户端 TortoiseSVN-1.7.7.22907-win32-svn-1.7.5,并在网页下方下载对应的语言包LanguagePack_1.7.7.22907-win32-zh_CN; 点击TortoiseSVN-1.7.7.22907-win32-svn-1.7.5进行安装 →Next 选I accept the terms in the License Agreement→Next 安装路径可以改,D:\Program Files\TortoiseSVN→Next →Install →Finish 安装语言包LanguagePack_1.7.7.22907-win32-zh_CN →Next 备注:本内容经过本人练习和测试 简介 VisualSVN Server是用于Subversion管理的windows程序,它整合了Subversion, Apache和一个命令行管理工具。提供了完全可视化的Subversion版本库创建,管理,人员管理的操作界面。 TortoiseSVN是subversion的客户端工具,可以通过他连接到VisualSVN Server。 细节:VisualSvn Server 已经将 Apache 和 Subversion 集成好了,生成 HTTP 的访问方式 :http://计算机名:端口号/svn/Project_Name。 windows下配置VisualSVN Server服务器(服务端和客户端) 下载安装文件: 服务端安装文件:VisualSVN-Server-1.6.2(下载地址https://www.doczj.com/doc/974428178.html,) 客户端安装文件:TortoiseSVN-1.5.5.14361-win32-svn-1.5.4 在VisualSVN Server 的官网https://www.doczj.com/doc/974428178.html,上提供了两个产品。一个是VisualSVN,另一个是VisualSVN Server (下面简称Server)。前者是一个集成到Visual Studio里的插件,功能挺强大,但是需要收费滴 VisualSVN Server(服务器端) 一、VisualSVN Server的配置和使用方法【服务器端】 1,VisualSVN Server的安装 下载安装包,解压后得到.exe文件,双击进行安装 其中的Location和Repositories存放位置可以自由设置,可以两个可以不在同一盘符下。建议复选Usesecure connection项,这时候只有443和8443两个端口可用(注意自己公司的防火墙问题,如果有 subversion(以下简称svn)是近年来崛起的版本管理工具, 是cvs的接班人。 svn服务器有2种运行方式:独立服务器和借助apache。2 种方式各有利弊。 svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式 更安全一点。 1. svn服务器安装操作系统: Redhat Linux AS4安装包获取:下载 https://www.doczj.com/doc/974428178.html,/downloads/subversion-1 .4.0.tar.gz和 https://www.doczj.com/doc/974428178.html,/downloads/subversion-d eps-1.4.0.tar.gz。编译: 以root用户登录。 将subversion-1.4.0.tar.gz和 subversion-deps-1.4.0.tar.gz传到服务器。 tar xfvz subversion-1.4.0.tar.gz tar xfvz subversion-deps-1.4.0.tar.gz cd subversion-1.4.0 ./configure --prefix=/opt/svn --without-berkeley-db --with-zlib (注:以svnserve方式运行,不加apache编译参数。以fsfs 格式存储版本库,不编译berkeley-db) make clean make make install vi /etc/profile,在/etc/profile最后加入: PATH=$PATH:/opt/svn/bin export PATH 测试: svnserve --version 如果显示如下,安装成功: svnserve, version 1.4.0 (r21228) compiled Oct 12 2006, 10:18:56Copyright (C) 2000-2006 CollabNet. Subversion is open source software, see https://www.doczj.com/doc/974428178.html,/ This product includes software developed by CollabNet (http://Collab/).The following repository back-end (FS) modules are available:* fs_fs : Module for working with a plain file (FSFS) repository. 2. svn配置 Redhat下svn 服务器端的安装及配置方法 一、svn安装方法 1、安装 执行 yum install svn 自动安装 2、测试方法 执行 svnserve –version 命令 如果显示如下,安装成功: svnserve, version 1.4.0 (r21228) compiled Oct 12 2006, 10:18:56 Copyright (C) 2000-2006 CollabNet. Subversion is open source software, see https://www.doczj.com/doc/974428178.html,/ This product includes software developed by CollabNet (https://www.doczj.com/doc/974428178.html,/). The following repository back-end (FS) modules are available: * fs_fs : Module for working with a plain file (FSFS) repository. 二、svn 配置方法 1、建立版本库目录 mkdir -p /opt/svndata/xxxxx 2、建立版本库: svnadmin create /opt/svndata/xxxxx 3、修改版本库配置文件: 版本库 xxxxx: vi /opt/svndata/xxxxx/conf/svnserve.conf 内容修改为: [general] anon-access = none auth-access = write password-db = /opt/svn/conf/pwd.conf authz-db = /opt/svn/conf/authz.conf realm = repos1 4、配置允许访问的用户: vi /opt/svn/conf/pwd.conf linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX 下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux 上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN。安装步骤如下: 1、yum install subversion 2、输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件。 输入svn --help可以查看svn的使用方法,如下图。 3、创建svn版本库目录 复制代码代码如下: mkdir -p /var/svn/svnrepos 4、创建版本库 复制代码代码如下: svnadmin create /var/svn/svnrepos 执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件 5、进入conf目录(该svn版本库配置文件) authz文件是权限控制文件 passwd是帐号密码文件 svnserve.conf SVN服务配置文件 6、设置帐号密码 vi passwd 在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan 7、设置权限 vi authz 在末尾添加如下代码: 复制代码代码如下: [/] dan=rw w=r 意思是版本库的根目录dan对其有读写权限,w只有读权限。 8、修改svnserve.conf文件 vi svnserve.conf 打开下面的几个注释: anon-access = read #匿名用户可读 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = /var/svn/svnrepos # 认证空间名,版本库所在目录 9、启动svn版本库 svnserve -d -r /var/svn/svnrepos 10、在windows上测试 新建一个测试文件夹,在该文件夹下右键选择SVN checkout如下图(要事先安装TortoiseS VN): 一、TortoiseSVN客户端的安装 1.客户端软件:TortoiseSVN-1.7.12.24070-win32-svn-1.7.9.msi 下载:\\10.0.0.127\share\SVN\SVN 客户端 中文语言包:LanguagePack_1.7.12.24070-win32-zh_CN.msi 下载:\\10.0.0.127\share\SVN\SVN 客户端\语言包 (客户端安装在系统的默认位置,不需要特殊的配置,安装完成后需要重新起动系统, 重启之后鼠标的右键菜单会多出这么一组命令) 2. 中文语言包的安装如下: 二、Subversion基本工作流程 这部分最重要,也是大家经常要用到的,即如何利用TortoiseSVN客户端对subversion库中的文件进行操作。 1.如何把subversion库中已经保存的文件版本检出到本地、并作修改后提交、从服务器端更新本地文件的版本。 检出到本地: 初次检出到本地文件夹时,在本地新建一个空文件夹,具体操作如下图: 如果要检出最新的版本可选中上图的(最新版本(H))单选按钮。 如果想检出自己需要的版本可选中上图的(版本(R))单选按钮,然后选择自己需要的版本文件。 在弹出的对话框中输入自己的用户名和密码。 修改文件后提交:(修改文件夹中的内容后文件夹会自动变成带有红色标记) 在信息框中为修改的文件添加说明信息。如下图 在变更列表中选中更变的文件。如下图 点击确定后会提示输入用户名和密码。 从服务器端更新本地文件的版本: 如果服务器上的版本库已经是第7版本,自己本机的版本还是第1版本。这时你可以更新自己本地的版本为第7版本。 SVN服务端操作使用手册 目录 一 .SVN服务器安装 ............................................................................................................. - 2 - 二 . SVN服务端的使用 ........................................................................................................ - 9 - 1.新建项目(创建库) .................................................................................................... - 9 - 2.新建项目(创建文件夹) .......................................................................................... - 16 - 3.新建用户 ...................................................................................................................... - 17 - 4.新建组并添加用户 ...................................................................................................... - 19 -5项目添加用户以及权限设置 ...................................................................................... - 21 -6.项目添加用户组以及权限设置 .................................................................................. - 23 - 1、软件下载 【注意】如果之前已经安装了Tortoise 下载Subversion服务器程序。 SVN客户端,必须选择与之配套的SVN服务端版本,否则会出现各种问题,可以从Tortoise SVN的"About"菜单中看到与之对应的Subversion版本! 2、服务器和客户端安装 ①服务器安装,直接运行安装程序,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。 ②客户端安装TortoiseSVN,同样直接运行安装程序,按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关。重启完毕后安装简体中文语言包, 然后在随便一个目录右击, 就会发 现多出了一些SVN相关菜单, 选择其中的TortoiseSVN, 再选择子菜单"Settings", 设置Language为"中文(简体)"。 3、建立版本库(Repository) ①运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,cmd下运行svnadmin create SVN库的位置(如: D:/svnRoot)。 ②复制SVNService.exe到SVN服务端安装目录下的bin目录下。第一次安装完后要到服务中手动启动它,或者到服务中将它设为自动启动,让每次机器启动时自动启动这个服务。 ③在svn安装路径的bin,目录cmd下运行SVNService -install -d -r D:/svnRoot(SVN库的位置)就会在目录D:\ svnRoot下创建一个版本库。 ④如果在命令行中不识别svnserver命令,可以查看系统环境变量path中有无subversion/bin的条目,没有就手动加上。也可以使用TortoiseSVN图形化界面完成这一步:在目录D:\svnRoot下"右键->TortoiseSVN->Create repository here",然后可以选择版本库模式,这里使用默认fsfs方式即可,然后就创建了一系列目录和文件。打开命令行窗口(或DOS窗口),进入svn服务器bin目录,输入svnadmin create --fs-type bdb svnRoot或svnadmin create --fs-type fsfs svnRoot,创建版本库⑤⑥⑦⑧⑨⑩ 4、配置用户和权限 打开D:\svnRoot, 你会发现已经多了一些目录和文件, 打开conf 子目录, 打开svnserve.conf文件, 这里行前凡是有#的都等于是被注释忽略了, 你可以把#去掉让那一行生效, 或者自己新添加行. 里面的英文注释已经详细说明了各种设置的含义, 最后你设置[general]小节中行前没有#号的内容为: anon-access = none # auth-access = write password-db = passwd 含义是: 未验证用户无任何权限(如果把none修改为read就是给予读权限) SVN服务器搭建和使用(一) SVN服务器搭建和使用(一) 步骤1:安装SVN服务器方法/步骤1: 百度搜索“VisualSVN Server”和“TortoiseSVN”,在其各自的官网上下载如下; 方法/步骤2: 选择一台电脑作为服务器,把“VisualSVN Server”程序拷贝过去,双击即可安装,如图; 方法/步骤3: 默认安装VisualSVN Server的服务器组件和管理工具,并且添加命令行管理工具的环境变量; 方法/步骤4: 出现的两个版本选择(标准版和企业版),其中企业版是要收费的,标准版不用,两者在功能上的区别可点击“Compare Editions”按钮查看; 方法/步骤5: 默认选择标准版,点击“Next”,开始设置程序的安装路径(Location),代码仓库存储路径(Repositories),端口号(port),和备份设置(Backups)等,如下: 方法/步骤6: 自定义程序的安装路径等配置后,继续默认安装,点击“next”即可,如图: 方法/步骤7: 在点击了“finish”按钮后,程序已经安装成功了,打开VisualSVN Server,如图; 步骤2:安装SVN客户端方法/步骤1: TortoiseSVN 是 SVN 版本控制系统的一个免费开源客户端,以其灵活轻便和功能强大深受广大程序员的喜爱,现在我们就选择一台客户机来安装它,继续我们在安 装了SVN服务器后在客户机上(win10系统)的使用;双击已下载好的“TortoiseSVN”,如图; 方法/步骤2: 默认同意软件协议,点击"Next",进入软件配置选项,可以自定义程序安装路径,如图; 方法/步骤3: 默认点击“Next”,继续程序安装,如图; 方法/步骤4: 按下“finish”按钮,即意味着TortoiseSVN客户端程序已经安装完成了,此时,在任意文件上右击鼠标,即可看到多出来的程序选项,如图; 步骤3:配置资源库方法/步骤1: 回到已经安装SVN的服务器,点击"Create new user",创建用户; 方法/步骤2: 点击“Create new repository”,开始创建资源库,默认选择常规的FSFS类型即可(一种不需要数据库的存储系统),此外,VDFS是基于FSFS的一种分布式的存储类型 方法/步骤3: 给资源库命名,创建空的资源库,默认给所有的用户分配权限 方法/步骤4: 点击“create”即可创建资源库,然后复制弹出来窗口中的资源库路径,用于回头在客户端上的连接,点击finish,完成创建; 步骤4:管理代码方法/步骤1: 在客户端机器上的资源管理器中新建文件夹,右键点击文件夹,选择"SVN检出",如图; 方法/步骤2: 接受凭证,填入配置好的用户和密码,点击确定即可,此时新建的文件夹已经上传到资源库中SVN服务器配置说明
SVN服务端安装和配置
svn服务器端配置库创建及配置方法
ubuntu搭建svn服务器详解
服务器VisualSVN-Server_2.1.6安装、配置方法
svn服务器端配置库创建及配置办法
SVN服务器配置详细解说
svn独立服务器及eclipse客户端配置
svn服务器配置说明
Windows下SVN服务器的详细安装配置手册
Win7 32位下安装SVN服务器及客服端
SVN服务器和客户端使用说明
在linux下安装配置svn独立服务器共24页
redhat下svn服务器端安装及配置方法
SVN服务器配置
TortoiseSVN使用说明书(超详细)(DOC)
SVN服务端操作手册
Windows系统下SVNServer 服务端和客户端安装配置
SVN服务器搭建和使用(一)