https://协议访问的svn服务搭建(1):手动编译安装Apache
一. 简介
之前的centos6.7安装svn只是搭建了个svn://协议访问的svn服务,这次记录下https://协议访问的svn服务的搭建过程。
计划写4篇,这是第一篇,手动编译安装Apache。
使用Apache是因为它可以通过mod_dav_svn模块访问svn,本身也可以提供http服务,Apache和svn都是Apache软件基金会下的软件,彼此的支持很是完善。
二. 为啥编译安装
其实使用yum安装的svn和httpd,应该也可以实现这个功能的。
但是目前我还不熟悉linux文件权限管理,现有的文件都在root账户下,而yum安装的Apache只能以非root权限运行,会有没有权限访问的问题。
如果要Apache以root账户运行,则需要修改代码,手动编译。
三. 安装
编译httpd之前,我们需要先编译安装它依赖的apr、apr-util、pcre模块。
install-apache.sh
# 卸载yum安装的httpd
yum -y remove httpd
# 安装依赖
yum -y install gcc pcre-devel expat-devel
# apr
cd ~
wget http://www.apache.org/dist//apr/apr-1.6.3.tar.gz
tar zxvf apr-1.6.3.tar.gz
cd apr-1.6.3
./configure --prefix=/usr/local/apr
make
make install
rm -rf ~/apr-1.6.3
rm -f ~/apr-1.6.3.tar.gz
# apr-util
cd ~
wget http://www.apache.org/dist//apr/apr-util-1.6.1.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
rm -rf ~/apr-util-1.6.1/
rm -f ~/apr-util-1.6.1.tar.gz
# pcre
cd ~
wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
tar zxvf pcre-8.41.tar.gz
cd pcre-8.41
./configure --prefix=/usr/local/pcre
make
make install
rm -rf ~/pcre-8.41
rm -f ~/pcre-8.41.tar.gz
# httpd
cd ~
wget http://www.apache.org/dist//httpd/httpd-2.4.29.tar.gz
tar zxvf httpd-2.4.29.tar.gz
# 编译支持root账户
sed -i '1i\#ifndef BIG_SECURITY_HOLE\n #define BIG_SECURITY_HOLE \n#endif\n' ~/httpd-2.4.29/include/http_config.h
cd httpd-2.4.29
./configure \
--prefix=/usr/local/apache \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre \
--sysconfdir=/etc/httpd \
--enable-so \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-mpm=prefork \
--enable-modules=most \
--enable-mpms-shared=all \
--enable-dav \
-enable-maintainer-mode \
-enable-rewrite \
--enable-dav-fs \
--enable-dav-lock
make
make install
# bin
ln -s /usr/local/apache/bin/httpd /usr/local/bin/httpd
ln -s /usr/local/apache/bin/apachectl /usr/local/bin/apachectl
rm -rf ~/httpd-2.4.29
rm -f ~/httpd-2.4.29.tar.gz
四. 命令
启动
/usr/local/bin/apachectl
检查配置文件
/usr/local/bin/apachectl -t
重新加载配置文件
/usr/local/bin/apachectl graceful
五.配置
<VirtualHost *:9090>
ServerName apache.wangbin.io
DocumentRoot "/usr/local/apache/htdocs"
DirectoryIndex index.html index.php
<Location />
Options Indexes FollowSymLinks
AllowOverride None
</Location>
</VirtualHost>
六.验证
执行
curl -H 'Host:apache.wangbin.io' http://127.0.0.1:9090
返回
<html><body><h1>It works!</h1></body></html>
七.结尾
apache作为大名鼎鼎的web服务器,后面有空好好再研究研究。
编译安装应用有点复杂,不过熟悉了感觉还行,对于版本控的我来说,以后编译安装其他应用估计是少不了了^_^