您的位置:首页 > 其它

Debian下编译安装LAMP+SVN(一)

2010-12-22 12:09 423 查看
是用最小安装的Debian来安装Apache+Mysql+php+subversion.

需要的包有:

所需要的源码包

httpd-2.2.9.tar.bz2

arp-1.4.2.tar.gz arp-util-1.3.10.tar.gz http://apr.apache.org/download.cgi

mysql-5.0.40.tar.gz

php-5.2.10.tar.bz2

zlib-1.2.5.tar.tar

sqlite-amalgamation-3.6.13.tar.gz http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz

subversion-1.6.16.tar.bz2 http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74

neno-0.29.5.tar.gz http://www.webdav.org/neon/

db-4.8.26.tar.gz http://download.oracle.com/berkeley-db
所需要安装的Debian包

bzip2 gzip gcc g++ cpp make libxml2-dev openssl bdb

安装

// 因为Debian是最小安装,所以要安装一些包以保证安装正常进行
// 首先挂在光盘
#mount /dev/hdc /mnt
#apt-get install bzip2
// 安装gcc
apt-get install gcc g++ cpp
// 安装make

#apt-get install make
#tar -jxvf httpd-2.2.9.tar.bz2 -C /usr/src
#cd /usr/src/http
// 预编译 --enable-dav --enable-dav-fs是用来支持svn的
#./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
--enable-dav --enable-dav-fs
//编译和安装
#make && make install

因为subversion只需要Apache的支持,所以接下来就开始安装subversion

// 首先安装zlib
#tar -xvf zlib-1.2.5.tar.tar -C /usr/src
#cd /usr/src/zlib-1.2.5
#./configure --prefix=/usr/local/apache2/zlib
#make && make install

// 安装sqlite
# tar -zxvf sqlite-amalgamation-3.6.13.tar.gz -C /usr/src
# cd /usr/src/sqlite-3.6.13
# ./configure --prefix=/usr/local/sqlite3 && make && make install

// 安装neno
// 安装neno所需要的libxml2-dev
# apt-get install libxml2-dev
# tar -zxvf neon-0.29.5.tar.gz -C /usr/src
# cd /usr/src/neon-0.29.5/
# ./configure --prefix=/usr/local/neno --enable-shared && make && make install

// 安装bdb
# tar -zxvf /home/lamp/db-4.8.26.tar.gz -C /usr/src
# cd /usr/src/db-4.8.26/build_unix
# ../dist/configure --prefix=/usr/local/bdb && make && make install
// 完成还需要做一步,不然apr-util会预编译错误
# cd /usr/local/lib
# ln -s ../bdb/lib/libdb-4.8.so
# ldconfig

// 安装apr
# tar -zxvf apr-1.4.2.tar.gz -C /usr/src
# cd /usr/src/apr-1.4.2
# ./configure --prefix=/usr/local/apr && make && make install
// 安装apr-utils
# tar -zxvf apr-util-1.3.10.tar.gz -C /usr/src
# cd /usr/src/apr-util-1.3.10/
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-berkeley-db=/usr/local/bdb
&&make && make install

// subversion 的安装准备工作已经做完
// 下面来安装subversion
# tar -jxvf subversion-1.6.15.tar.bz2 -C /usr/src
# cd /usr/src/subversion-1.6.15
# ./configure --prefix=/usr/local/subversion
--with-apxs=/usr/local/apache2/bin/apxs
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util/
--with-ssl
--with-zlib=/usr/local/apache2/zlib/
--enable-maintainer-mode
--with-sqlite=/usr/local/sqlite3/
--with-neon=/usr/local/neno/
make && make install
错误:make 的时候发生错误cannot find -lexpat

解决: #apt-get install libexpat1-dev
这样subversion 就安装完成

到这里subversion就安装完成了...

想让apache 支持svn还需要配置一下

subversion 安装完成就会在apache主配文件(/usr/local/apache2/conf/httpd.conf)中生成如下内容

LoadModule dav_svn_module

LoadModule authz_svn_module modules/mod_authz_svn.so

以下内容转自:http://hi.baidu.com/gouxiongmao/blog/item/2e90f915fbbaee02c93d6dcc.html

4.检查svn安装配置

mkdir -p /app/svn //这个目录将作为svn的版本库的总(父)目录使用

vi /usr/local/apache2/conf/httpd.conf //apache的配置需要做些检查和更改

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so
//有这两个模块则svn安装是正确的,若是带#注释的就把#删掉,同时要保证/usr/local/apache2/modules目录下有mod_dav_svn.so和mod_authz_svn.so这两个文件。

手动添加以下内容:

<Location /svn> //定义网页目录为/svn

DAV svn //开启svn(融合apache的svn哦)

SVNListParentPath On //开启svn版本库父目录功能

SVNParentPath /app/svn //指定父目录位置,以后所有版本库都将存放在该目录下

AuthType Basic //指定授权模式

AuthName "SVN REPOS" //登陆窗口标题显示SVN REPOS

AuthUserFile /usr/local/svn/svn_passwdfile //指定访问版本库的账户和密码存放文件,该文件需要用apache的htpasswd命令创建

AuthzSVNAccessFile /usr/local/svn/svn_accessfile //指定访问版本库的用户和组的权限控制文件

Require valid-user //要求有效的用户才能访问

</Location> //字段结束标志

esc //按esc退出编辑模式

shift+zz //保存退出

5.测试svn与apache是否融合成功

/usr/local/apache2/bin/htpasswd -c /usr/local/svn/svn_passwdfile gaso //创建访问版本库的账户和存放账户的文件,回车后会提示输入密码两边(我们用gaso123做密码),因为是第一次创建,svn_passwdfile文件原本不存在所以需要加-c参数,以后创建svn用户就不需要-c参数了,直接引用svn_passwdfile文件即可

vi /usr/local/svn/svn_accessfile

[/]

gaso=rw
//这两行授权用户gaso有访问所有版本库的权限

[gasorepo:/]

gaso=rw
//这两行授权用户gaso有访问gasorepo版本库的权限

保存退出

/usr/local/subversion/bin/svnadmin create /app/svn/gasorepo //创建gasorepo版本库

6.启动apache,测试svn

chown -R apache.apache /app/svn //我们这个部署里svn是通过apache对版本库进行访问的,它对版本库进行访问其实就是通过apache的用户apache来进行的,所以版本库父目录就必须属于用户apache才能规避权限问题,最后的svnmanager也有同样的问题,所以这个属主修改很重要!

/usr/local/apache2/bin/apachectl -k start //启动apache

在浏览器里输入http://hostip/svn/gasorepo //输入用户名gaso和密码gaso123就可以看到版本库了,不过里面没东西:)

也可以直接访问http://hostip/svn //这个直接访问版本库总目录

如果想知道PHP和Mysql的安装方法,期待下一篇.
本文出自 “cold night” 博客,请务必保留此出处http://linuxsvr.blog.51cto.com/2537584/461736
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: