Apache相关包下载:
1.首先分别下载:2.4.39源码包,apr-1.6.5,apr-util-1.6.1;后面两个是通用函数库;
Apache 的介绍:
Apache 是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache.
Apache官网www.apache.org .
本次实验下载的二进制源码包如下:
2.4源码包: https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.39.tar.gz
apr: http://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz
apr-util: http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
最后一个是:http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2
apr 和 apr-util 是一个通用的函数库,他让httpd 可以不关心底层的操作系统平台,可以很方便的移植(从linux移到windows)
安装httpd: 进入到 /usr/local/src 目录。
安装apr-1.6.5:
安装apr-1.6.1:
依次解压压缩包:
tar zxvf httpd-2.4.39.tar.gz
tar zxvf apr-1.6.5.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
(tar jxf apr-util-1.6.1.tar.bz2) 此包的解压方式和上面两个包不一样。否则不能正常进行。
安装顺序:
1. 安装apr-1.6.5
定义到apr-1.6.5目录下:安装包: ./configure --prefix=/usr/local/apr 提示错误:
这个错误是因为没有安装gcc造成的。安装yum install gcc后,安装成功。
执行 make && make install
2. 安装apr-util-1.6.1
参看当前路径,跳转到apr-util-1.6.1 目录下:
进入到apr-util-1.6.1目录后,初始化该目录:
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
执行make&&make install ,此时发现错误,缺少expat.h包.
执行 yum install -y expat*
再则执行make&&make install
3. 安装apache 2.4
先定义到http-2.4.33/目录下面
首先要先安装 yum install -y pcre-devel
初始化,执行安装: ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-until=/usr/local/apr-util --enable-so --enable-mods-shared=most
执行make
一般在执行后会报错,如下所示:
问题!!make报错
collect2: error: ld returned 1 exit status
make[2]: [htpasswd] 错误 1
make[2]: 离开目录“/usr/local/src/httpd-2.4.27/support”
make[1]: [all-recursive] 错误 1
make[1]: 离开目录“/usr/local/src/httpd-2.4.27/support”
make: *** [all-recursive] 错误 1
解决的办法:
1.cp -r apr-1.6.5 /usr/local/src/httpd-2.4.27/srclib/apr
cp -r apr-util-1.6.0 /usr/local/src/httpd-2.4.27/srclib/apr-util
2. 在初始化文件后加上 --with-included-apr 再次初始化编译。
/configure --with-included-apr --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
再运行make 通过:
再执行make install
查询相关的参数资料如下面这些图:
4. 启动 httpd 程序:/usr/local/apache2.4/bin/apachectl start
查看有关httpd的进程
ps aux | grep httpd
configure的命令格式也可以这样书写; \是转义字符,后面可以换行添加多行命令;
[root@ying01 httpd-2.4.33]# ./configure \
> --prefix=/usr/local/apache2.4 \> --with-apr=/usr/local/apr \> --with-apr-util=/usr/local/apr-util \> --enable-so \> --enable-mods-shared=most
产看端口号: