是用最小安装的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
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这两个文件。
手动添加以下内容:
//定义网页目录为/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 //要求有效的用户才能访问
//字段结束标志
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的安装方法,期待下一篇.