准备工作(/usr/local/src/目录下)
1.下载httpd源码包,解压
$ wget http://apache.fayea.com//httpd/httpd-2.4.25.tar.bz2
$ tar jxf httpd-2.4.25.tar.bz2
2.下载apr和apr-util源码包,解压,改名,移至/httpd/解压目录/路径/src/lib/
$ wget http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.gz
$ wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
$ tar zxf apr-1.5.2.tar.gz
$ tar zxf apr-util-1.5.4.tar.gz
$ mv apr-1.5.2 apr ; mv apr-util-1.5.4 apr-util
$ mv apr apr-util httpd-2.4.25/srclib/
3.编译安装pcre
$ wget https://ncu.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.bz2
$ tar jxf pcre-8.39.tar.bz2
$ cd pcre-8.39
$ ./configure --prefix=/usr/local/pcre
$ make && make install
$ echo $?
4.yum安装GCC编译器、OpenSSL(支持ssl模块)、Perl(支持apxs工具)
$ yum install gcc openssl openssl-devel perl perl-devel -y
安装过程(/usr/local/src/httpd-2.4.25/目录下)
1.配置参数
$ ./configure \
--prefix=/usr/local/apache2 \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre \
--with-ssl
注:
--prefix=/usr/local/apache2
指定安装路径
--with-included-apr
Apache portable Run-time libraries,Apache可移植运行库
--enable-s
激活apache的dso模块的支持,以后可以用DSO方式编译安装共享模块。
--enable-deflate=shared
提供对内容的压缩传输编码,shared表示动态加载,需要时再加载模块。
--enable-expires=shared
允许通过配置文件控制http的"Expires"和 "Cache-Control"头内容,对图片,css,js等内容配置客户端浏览器缓存。
--enable-rewrite=shared
提供基于url 规则的重写功能
--with-pcre
perl兼容正则表达式库
--with-ssl
支持ssl
2.编译和安装
$ make && make install
3.启动apache
$ /usr/local/apache2/bin/apachectl start
若出现错误如下:
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.ding for ServerName1)
通过编辑httpd.conf解决:
$ vim /usr/local/apache/conf/httpd.conf
/ServerName 查找行
#ServerName www.example.com:80
ServerName 自定义主机名:80 添加行
$ /usr/local/apache/bin/apachectl restart
/usr/local/apache2/bin/apachectl选项
1) -M
列出模块,模块目录为/usr/local/apache2/modules/,*.so表示动态模块。
2) –l
列出静态模块,其中event.c为默认MPM(Multi-Processing Modules,多路处理模块)。等同于/usr/local/src/apache-2.4.25/目录下运行#./httpd -l。
3) –t
检查配置文件是否有语法错误,配置文件为/usr/local/apache2/conf/httpd.conf。
4) /usr/local/apache2/bin/apachectl stop
结束httpd服务进程,结束后可以用start、restart和graceful重启服务。
错误之处,还望指出,多谢!