Linux(CentOS6.3 x64) 安装配置Apache2.4.3 + SVN1.7 + MySQL完整版
来源:互联网 发布:甜蜜蜜知乎 编辑:程序博客网 时间:2024/06/03 22:48
首先下载将要用的软件
apr, apr-util: http://apr.apache.org/
pcre: http://www.pcre.org/
zlib: http://www.zlib.net/
sqlite: http://www.sqlite.org/
编译安装上述软件, 然后继续
2. 开始安装Apache
检查系统是否已安装了Apache, 有的话先卸载: yum remove httpd
前往Apache官方网站下载: http://httpd.apache.org/
解压:tar -xvf httpd-x.x.x.tar
进入httpd-x.x.x, 执行
./configure --prefix=指定Apache将要被安装到的目录 --with-apr=apr安装目录 --with-apr-util=apr-util安装目录 --with-zlib=zlib安装目录 --with-pcre=pcre安装目录
如果执行上述命令提示还缺少依赖软件则自己再下载加上,我在Red Hat 5.5, Ubuntu12, CentOS 6.3上测试是没问题了。
编译:
make
安装:
make install
如果没有错误发生。至此,Apache就算安装完成了,假设您已经安装到了Apache_Home目录。
测试一下Apache是否安装成功,
进入Apache_Home/bin,
启动Apache服务器:
sudo apachectl restart
浏览器访问: http://localhost, 如果能打开则Apache安装成功。
3. 安装Subversion
前往Subversion官网下载: http://subversion.apache.org/download/
解压:tar -xvf subversion-x.x.x.tar
进入suversion-x.x.x, 执行
./configure --prefix=指定Subversion将要被安装到的目录 --with-apr=apr安装目录 --with-apr-util=apr-util安装目录 --with-zlib=zlib安装目录 --with-sqlite=sqlite安装目录 --with-apxs=Apache_Home/bin/apxs
注意这句是SVN与Apache整合的关键: --with-apxs=Apache_Home/bin/apxsapache , 不加上不会安装SVN的modules到Apache
编译:
make
安装:
make install
如果没有错误发生, 那么Subversion就算安装完成了, 假设您的Subversion安装在Svn_Home目录
可以测试一下SVN:
进入Svn_Home/bin, 执行svn, svnadmin命令试试,没问题就可以跳过了。
我的64位Linux操作系统出现: /usr/lib64/libz.so.1: no version information available (required by ....) 错误, 原因是zlib1.2.3的版本有问题, 需要升级即可。
解决办法: su使用root帐号, 执行删除命令:rm /lib64/libz.so.1 /lib64/libz.so.1.2.3,
复制文件: cp /ZLib_Home/lib/libz.so.1 /lib64/libz.so.1
复制文件: cp /Zlib_Home/lib/libz.so.1.x.x /lib64/libz.so.1.x.x
4. 配置Apache加载SVN
执行: vi apache安装目录/conf/httpd.conf
#LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_module modules/mod_dav.so
修改为:
LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so
5. 新建版本仓库, 并由Apache管理
创建版本仓库
svnadmin create /Program/Server/subversion/repos/javaee --用于存储JavaEE项目的仓库 svnadmin create /Program/Server/subversion/repos/javase --用于存储JavaSE项目的仓库 svnadmin create /Program/Server/subversion/repos/android --用于存储Android项目的仓库
执行上述三条命令,创建了三个svn仓库,目录可以改为你本机的目录。 注意三个仓库父文件夹要相同。
执行命令: vi apache安装目录/conf/httpd.conf
<Location/svn> #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库 DAV svn # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块 SVNListParentPath on SVNParentPath /Program/Server/subversion/repos #告诉Subversion在目录/Program/Server/subversion/repos 下寻找版本库;只有一个版本仓库就用SVNPath, 直接指向仓库具体目录。 AuthType Basic #启用基本的验证,使用用户名/密码验证 AuthName "please input username/password" # 弹出用户验证对话框时的提示信息 AuthUserFile /Program/Server/subversion/repos/passwd #passwd问密码和用户文件,用来验证用户的用户名及密码 AuthzSVNAccessFile /Program/Server/subversion/repos/access #权限控制文件,限定各个用户或组在版本库中目录的访问权限 Require valid-user #限定用户只有输入正确的用户名及密码后才能访问这个路径 </Location>
比 如: bin\htpasswd -c /Program/Server/subversion/repos/passwd admin
命令分析:
c:\svn\passwd 表示会在/Program/Server/subversion/repos/passwd 目录下创建一个passwd文件
admin 表示用户名
[groups]committers = paulex, richarddevelopers = jimmy, michel, spark, sean [/]* = r@committers = rw [javaee:/]@developers = rw [javase:/]tony = rw [android:/]* = @committers= r使用 SVNParentPath 代替 SVNPath 来指定多个版本库的父目录时,其中所有的版本库都将按照这个策略文件配置。例如上例中 tony 将对所有版本库里的 /tags 目录具有读写权限。如果要对具体每个版本库配置,用如下的语法:
[groups] project1_committers = paulex, richard project2_committers = jimmy, michel, spark, tony, Robert [repos1:/] * = r @ project1_committer = rw [repos2:/] * = r @ project2_committer = rw
这样项目1的 project1_committer 组只能对 repos1 版本库下的文件具有写权限而不能修改版本库 repos2 ,同样项目2的 project2_commiter 组也不能修改 repos1 版本库的文件。
LoadModule mysql_auth_module modules/mod_auth_mysql.so相应的 Location 区域改写为:
<Location /repos/> AuthName "MySQL Testing" AuthType Basic AuthMySQLHost db.kysf.net AuthMySQLUser svnadmin AuthMySQLPassword PaSsWoRd #必填项 AuthMySQLDB svn AuthMySQLUserTable users AuthMySQLNameField user_name AuthMySQLPasswordField user_password AuthMySQLGroupField user_group AuthMySQLPwEncryption none #必填项 require valid-user</Location>其中,
AuthMySQLHost db.kysf.netAuthMySQLUser svnadminAuthMySQLDB svnAuthMySQLUserTable usersAuthMySQLNameField user_nameAuthMySQLPasswordField user_passwordAuthMySQLGroupField user_group
这7项可以省略。如果省略系统采用默认的值,其默认值如下:
默认值:
AuthMySQLHost localhost AuthMySQLUser ODBC AuthMySQLDB test AuthMySQLUserTable user_info AuthMySQLNameField user_name AuthMySQLPasswordField user_password AuthMySQLGroupField user_group然后在 mysql 中添加名为 svn 的数据库,并建立 users 数据表:
create database svn; use svn; CREATE TABLE users ( user_name CHAR(30) NOT NULL, user_password CHAR(20) NOT NULL, user_group CHAR(10), PRIMARY KEY (user_name) );
在 users 表中插入用户信息
insert into users values('username','password','group');重新启动 Apache,在访问版本库的时候 Apache 就会用 mysql 数据表中的用户信息来验证了。
更改Location 区域:
<Location /repos/> DAV svn SVNListParentPath on #SVNPath e:/svn/repos1 SVNParentPath e:/svn AuthzSVNAccessFile E:/usr/Apache2.2/bin/accesspolicy.conf Satisfy Any Require valid-user AuthType Basic AuthName "MySQL Auth" AuthMySQLEnable on AuthMySQLPwEncryption md5 AuthMySQLAuthoritative off AuthMySQLHost localhost AuthMySQLUser svnslt AuthMySQLPassword list AuthMySQLDB svn_auth AuthMySQLUserTable users AuthMySQLNameField user_name AuthMySQLPasswordField user_passwd AuthMySQLGroupTable groups AuthMySQLGroupField user_group AuthUserFile E:/usr/Apache2.2/bin/passwd.conf</Location>
说明:
既可以用数据库中的用户名认证,也可以用文件中的用户名认证。如果数据库认证失败,就由用户文件认证。不过最好把用户文件和数据库中的用户名设为一致,防止单点失败。
- Linux(CentOS6.3 x64) 安装配置Apache2.4.3 + SVN1.7 + MySQL完整版
- linux centos6.3 升级svn1.6到svn1.8
- centos6安装svn1.8
- Windows8-x64 VMWare安装Linux CentOS6-x64
- linux下配置apache2.2.10与svn1.4.5整合
- linux下安装svn1.7
- CentOS6.7 x64 网络配置
- CENTOS6.4 安装SVN1.8.17
- 在CentOS6上安装 jdk-7u79-linux-x64.gz
- centos6.3安装 jdk-8u131-linux-x64.gz
- 零起步9-CentOS6.3安装配置Resin4.0 + Apache2.4.3
- linux (centos6.3) 安装mysql
- centos6.5下安装配置apache2.4.9
- CentOS6.6 Apache2.4+tomcat7 安装配置
- CentOS6.2+Apache2.4.1+SVN1.7.3环境搭建
- CentOS6.2+Apache2.4.1+SVN1.7.3环境搭建
- CentOS6安装配置mysql
- Apache2.2+svn1.6.6 windowsxp 下安装配置版本控制的环境
- java新手超级入门——思想认识篇
- Qt4.6.2配置VS2008 WindowsMobile
- HDU 2896 病毒侵袭(AC自动机)
- poj3352-参考3177,同样代码,直接通过
- iOS 滤镜 和 iOS6 中的Core Image技术
- Linux(CentOS6.3 x64) 安装配置Apache2.4.3 + SVN1.7 + MySQL完整版
- 贪财的富翁二
- JSP各种路径的获取
- Mongoose源码剖析:外篇之web服务器
- 软件工程 -- 实现与测试
- alsa-lib与alsa-driver的关系
- MongoDB 2.2.1发布
- Spring AOP权限管理
- 软件工程 -- 详细设计