wangbin
  • wangbin
  • 2018-08-26
  • IT

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服务器,后面有空好好再研究研究。

编译安装应用有点复杂,不过熟悉了感觉还行,对于版本控的我来说,以后编译安装其他应用估计是少不了了^_^