1 Apache简介
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速,可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。关于更多Apache的介绍,可以参考百科http://baike.baidu.com/view/28283.htm或官网http://www.apache.org/ 或 http://httpd.apache.org/的介绍
2 Apache软件及相关软件下载
2.1 Apache软件下载
Apache的相关软件下载地址http://apr.apache.org/projects.html
2.2 APR and APR-Util包下载
截止目前为止,APR and APR-Util的最新版本如下,下载地址:http://apr.apache.org/download.cgi
• APR 1.4.8, released June 21, 2013
• APR-util 1.5.2, released April 4, 2013
• APR-iconv 1.2.1, released November 26, 2007
2.3 PCRE包下载
截止目前为止,PCRE最新的包为8.33,下载地址如下
• https://sourceforge.net/projects/pcre/files/pcre/
2.4 Apache安装要求
将上面的安装包上传到linux中的root/kerry这个临时目录.
下面是官方文档的要求,必须安装APR、APR-Util、PCRE,gcc-c++等包,文档URL地址http://httpd.apache.org/docs/2.4/install.html
3 Apache安装
3.1 安装包gcc或gcc-c++
[root@getlnx05 pcre-8.33]# yum list gcc-c++
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
Available Packages
gcc-c++.x86_64 4.1.2-51.el5 rhel-debuginfo
[root@getlnx05 pcre-8.33]# yum list gcc
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
Installed Packages
gcc.x86_64 4.1.2-51.el5 installed
[root@getlnx05 pcre-8.33]# rpm -q gcc
gcc-4.1.2-51.el5
从上面可见gcc包已经安装,缺少gcc-c++包,那么接下来安装包gcc-c++,如果此处不安装该包,后面安装过程中会报错
[root@getlnx05 pcre-8.33]#yum install gcc-c++
3.2 安装包gcc或gcc-c++
[root@getlnx05 kerry]# ls apr*
apr-1.4.8.tar.gz apr-util-1.5.2.tar.gz
[root@getlnx05 kerry]#
[root@getlnx05 kerry]# tar -zxf apr-1.4.8.tar.gz
[root@getlnx05 kerry]# cd apr-1.4.8
[root@getlnx05 apr-1.4.8]# ls
新建目录/usr/local/apr,用作安装目录:
[root@getlnx05 apr-1.4.8]# mkdir /usr/local/apr
[root@getlnx05 apr-1.4.8]# ./configure --prefix=/usr/local/apr
[root@getlnx05 apr-1.4.8]# make
[root@getlnx05 apr-1.4.8]# make install
安装完成后,可以验证一下
[ root@getlnx05 apr]# ls -lrt
total 32
drwxr-xr-x 3 root root 4096 Aug 15 06:57 include
drwxr-xr-x 3 root root 4096 Aug 15 06:57 lib
drwxr-xr-x 2 root root 4096 Aug 15 06:57 build-1
drwxr-xr-x 2 root root 4096 Aug 15 06:57 bin
[root@getlnx05 kerry]# mkdir /usr/local/apr-util
[root@getlnx05 kerry]# tar -zxf apr-util-1.5.2.tar.gz
[root@getlnx05 kerry]# cd apr-util-1.5.2
[root@getlnx05 apr-util-1.5.2]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
[root@getlnx05 apr-util-1.5.2]# make
[root@getlnx05 apr-util-1.5.2]# make install
3.3 安装包PRCE
[root@getlnx05 kerry]# unzip pcre-8.33.zip
[root@getlnx05 kerry]# cd pcre-8.33
[root@getlnx05 kerry]#mkdir /usr/local/pcre
[root@getlnx05 pcre-8.33]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr
[root@getlnx05 pcre-8.33]# make
[root@getlnx05 pcre-8.33]# make install
3.4 安装Apache Http Server
[root@getlnx05 kerry]# tar zxvf httpd-2.4.6.tar.gz
[root@getlnx05 kerry]#cd httpd-2.4.6
[root@getlnx05 httpd-2.4.6]# ./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@getlnx05 httpd-2.4.6]#make
[root@getlnx05 httpd-2.4.6]#make install
3.5 启动Apache服务
[root@getlnx05 httpd-2.4.6]# /usr/local/apache/bin/apachectl start
用浏览器访问http://localhost时提示It works!
4 Apache安装常见问题
4.1 缺少gcc-c++导致安装apr-util通不过
[root@getlnx05 kerry]# unzip pcre-8.33.zip
[root@getlnx05 kerry]# cd pcre-8.33
[root@getlnx05 pcre-8.33]# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
一般出现这个错误是因为没有安装包gcc-c++,可以通过如下命令检查,
[root@getlnx05 pcre-8.33]# yum list gcc-c++
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
Available Packages
gcc-c++.x86_64 4.1.2-51.el5 rhel-debuginfo
[root@getlnx05 pcre-8.33]# yum list gcc
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
Installed Packages
gcc.x86_64 4.1.2-51.el5 installed
[root@getlnx05 pcre-8.33]# rpm -q gcc
gcc-4.1.2-51.el5
[root@getlnx05 pcre-8.33]# rpm -q gcc-c++
4.2 checking for APR-util…configure:error:the –with-apr-util parameter is incorrect
[root@getlnx05 httpd-2.4.6]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
checking for chosen layout… Apache
checking for working mkdir -p… yes
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking build system type… x86_64-unknown-linux-gnu
checking host system type… x86_64-unknown-linux-gnu
checking target system type… x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library…
configure:
checking for APR… yes
setting CC to “gcc”
setting CPP to “gcc -E”
setting CFLAGS to " -g -O2 -pthread"
setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
setting LDFLAGS to " "
configure:
configure: Configuring Apache Portable Runtime Utility library…
configure:
checking for APR-util… configure: error: the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file.
[root@getlnx05 httpd-2.4.6]#
一般是由于APR-util没有安装成功,可以通过验证该目录是否为空来判断,因为你有时候执行了make,忘了执行make isntall命令有可能导致这个错误。
[root@getlnx05 apr]# cd /usr/local/apr-util
[root@getlnx05 apr-util]# ls
4.3 没有指定PCRE参数
[root@getlnx05 httpd-2.4.6]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
checking for chosen layout… Apache
checking for working mkdir -p… yes
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking build system type… x86_64-unknown-linux-gnu
checking host system type… x86_64-unknown-linux-gnu
checking target system type… x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library…
configure:
checking for APR… yes
setting CC to “gcc”
setting CPP to “gcc -E”
setting CFLAGS to " -g -O2 -pthread"
setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
setting LDFLAGS to " "
configure:
configure: Configuring Apache Portable Runtime Utility library…
configure:
checking for APR-util… yes
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking how to run the C preprocessor… gcc -E
checking for gcc option to accept ISO C99… -std=gnu99
checking for pcre-config… false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
[root@getlnx05 httpd-2.4.6]#
4.4 安装前忘记了先安装APR相关包
[root@getlnx05 httpd-2.4.6]# ./configure --prefix=/usr/local/appache/
checking for chosen layout… Apache
checking for working mkdir -p… yes
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking build system type… x86_64-unknown-linux-gnu
checking host system type… x86_64-unknown-linux-gnu
checking target system type… x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library…
configure:
checking for APR… no
configure: error: APR not found. Please read the documentation.
[root@getlnx05 httpd-2.4.6]#
4.5 启动服务时报错
[root@getlnx05 httpd-2.4.6]# /usr/local/apache/bin/apachectl start
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using getlnx05.gfg1.esquel.com. Set the ‘ServerName’ directive globally to suppress this message
这个时候需要编辑httpd.conf配置文件,添加SeraverName的具体IP地址。如下所示
[root@getlnx05 conf]# cd /usr/local/apache/conf/
[root@getlnx05 conf]# ls
extra httpd.conf magic mime.types original
[root@getlnx05 conf]# vi httpd.conf
ServerAdmin [email protected]
#ServerName www.example.com:80
ServerName 192.168.9.122:80
“httpd.conf” 502L, 18179C written
[root@getlnx05 conf]# /usr/local/apache/bin/apachectl restart
httpd not running, trying to start
[root@getlnx05 conf]# /usr/local/apache/bin/apachectl start
httpd (pid 7797) already running
如果从其它电脑连接访问Apache时,输入url地址:http://192.168.9.122页面没有显示正常,而上面配置也OK,那么你必须关闭防火墙,有时候甚至需要重启电脑才能OK,重启Apache服务都无效。
[root@getlnx05 conf]# chkconfig iptables off
[root@getlnx05 conf]# chkconfig iptables off
[root@getlnx05 conf]# /usr/local/apache/bin/apachectl restart
[root@getlnx05 conf]# /usr/local/apache/bin/apachectl restart
[root@getlnx05 conf]#
5 Apache对Weblogic服务器负载均衡配置
5.1 在Apache中添加Weblogic配置文件
将mod_wl_24.so拷贝到apache中的目录modules下 #注意 mod_wl_24.so 文件要和使用的weblogic版本匹配 我这里使用的64位的
mod-wl_24.so对应的是Apache2.4的版本
5.2 修改httpd.conf配置文件
配置文件在/apache/conf/下
在httpd.conf中找到配置
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so # 两个文件 去掉前面的#
在httpd.conf最下面一行新增
LoadModule weblogic_module modules/mod_wl_24.so #注意 mod_wl_24.so 文件要和使用的weblogic版本匹配 我这里使用的64位的