LinuxProbe 发表于 2020-6-25 15:12:33

源码编译 apache2.4

Apache HTTP Server是Apache软件基金会的一个开放源码的网页服务器软件,可以在大多数电脑操作系统中运行。由于其跨平台和安全性,被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。



# yum install -y gccpcrepcre-develexpat-devel   bzip2openssl-devel   zlib*libtool
# rz
# tar xvf apr-1.7.0.tar.gz
# ls
apr-1.7.0apr-1.7.0.tar.gz
# cd apr-1.7.0
# ./configure--prefix=/usr/local/apr
# make
# make install

# cd ..
# rz
rz waiting to receive.
zmodem trl+C ȡ

100%   541 KB541 KB/s 00:00:01       0 Errors..

# ls
apr-1.7.0apr-1.7.0.tar.gzapr-util-1.6.1.tar.gz
# tar xf apr-util-1.6.1.tar.gz
# ls
apr-1.7.0apr-1.7.0.tar.gzapr-util-1.6.1apr-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

更多的选项可以通过./configure --help 了解
官方的编译选项文档http://httpd.apache.org/docs/current/programs/configure.html

--prefix=/usr/local/apache
--sysconfdir=/etc/httpd         //指定配置文件在安装在哪个路径。如不指定,配置文件就在程序安装的目录;如指定/etc目录
--with-apr=/usr/local/apr       // 指定依赖的apr路径。注意必须指明路径,否则编译时会自动去找/usr下的apr,而不是编译的高版本apr,下同
--with-apr-util=/usr/local/apr-util
--with-mpm=MPM          //指定默认的            如3种MPM模块都编译了,则通过此项指定默认使用哪种
--with-pcre            //依赖pcre库用于解决正则表达式问题。    ## 安装pcre-devel(兼容Perl的正则表达式库)
--enable-so             //打开 so 模块,启用动态装载模块功能
--enable-ssl             //启用ssl功能。注意要先安装,https使用
--enable-cgi            //启用cgi功能,为非线程方式工作的mpm使用
--enable-cgid         //以线程工作(worker/event)的mpm使用
--enable-rewrite   //支持 URL 重写
--enable-zlib          //通用压缩机制
--enable-module=most      //[ all | most | ……]        指定启用哪些模块。可指定具体的模块名,也可使用all表示启用所有模块,most表示启用大多数常用模块。
                                        一般使用most即可
--enable-mpms-shared=all      //启用MPM支持的模式,启用哪种mpm(prefork,worker,event),使用worker或event时要另外一种方式编译php(编译时使用了–enable-maintainer-zts选项)
--enable-deflate       //传输压缩机制,节约带宽提供对内容的压缩传输编码支持一般是html、js、css等内容的站点。使用此参数会大大
                                 提高传输速度提升访问者访问的体验。在生产环境中这是apache调优的一个重要选项之一

# cd ..
# rz
rz waiting to receive.
zmodem trl+C ȡ

100%    8983 KB 8983 KB/s 00:00:01       0 Errors

# ls
apr-1.7.0apr-1.7.0.tar.gzapr-util-1.6.1apr-util-1.6.1.tar.gzhttpd-2.4.39.tar.gz
# tar xf httpd-2.4.39.tar.gz
# ls
apr-1.7.0         apr-util-1.6.1         httpd-2.4.39
apr-1.7.0.tar.gzapr-util-1.6.1.tar.gzhttpd-2.4.39.tar.gz
# cd httpd-2.4.39
# ./configure --prefix=/usr/local/apache24--enable-so--enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all--with-mpm=event
# make
# make install

所有组件      /usr/local/apache24   
主配置文件    /usr/local/apache24/conf   
启动脚本       /usr/local/apache24/bin/apachectl

# ls /usr/local/apache24/
binbuildcgi-binconferrorhtdocsiconsincludelogsmanmanualmodules
# ls /usr/local/apache24/conf/
extrahttpd.confmagicmime.typesoriginal
# ls /usr/local/apache24/bin/
ab         apxs      dbmmanageenvvars-stdhtcachecleanhtdigesthttpd      logresolve
apachectlcheckgidenvvars    fcgistarterhtdbm         htpasswdhttxt2dbmrotatelogs
# ll /usr/local/apache24/bin/apachectl
-rwxr-xr-x 1 root dip 3440 Mar 10 16:45 /usr/local/apache24/bin/apachectl

启动 apache2.4
# /usr/local/apache24/bin/apachectl
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::250:56ff:fe2c:fe97%ens33. Set the 'ServerName' directive globally to suppress this message
这是一个提示,问题不大 (⊙o⊙)…

重启 apache2.4
# /usr/local/apache24/bin/apachectl graceful

查看 apache2.4 相关信息
# netstat -pantul | grep 80
tcp      0      0 0.0.0.0:22            0.0.0.0:*               LISTEN      807/sshd            
tcp6       0      0 :::80                   :::*                  LISTEN      35199/httpd         
tcp6       0      0 :::22                   :::*                  LISTEN      807/sshd
# grep DocumentRoot /usr/local/apache24/conf/httpd.conf   
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/usr/local/apache24/htdocs"
    # access content that does not live under the DocumentRoot.
# ls /usr/local/apache24/htdocs
index.html
# cat /usr/local/apache24/htdocs/index.html
It works!




自定义首页内容
# vim /usr/local/apache24/htdocs/index.html
It works!
Hello World!




设置文件共享服务
# cd /usr/local/apache24/htdocs/
# ls
index.html
# touch file{1..10}
# ls
file1file10file2file3file4file5file6file7file8file9index.html
# mv index.html index.html.bak
# ls
file1file10file2file3file4file5file6file7file8file9index.html.bak




总结
至此,实战演示源码编译 apache2.4完毕。

zcxzcx 发表于 2020-6-26 00:41:39

学习
页: [1]
查看完整版本: 源码编译 apache2.4