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

[root@Jaking12?~]#?yum?install?-y?gcc??pcre??pcre-devel??expat-devel???bzip2??openssl-devel???zlib*??libtool
[root@Jaking12?src]#?rz
[root@Jaking12?src]#?tar?xvf?apr-1.7.0.tar.gz
[root@Jaking12?src]#?ls
apr-1.7.0??apr-1.7.0.tar.gz
[root@Jaking12?src]#?cd?apr-1.7.0
[root@Jaking12?apr-1.7.0]#?./configure??--prefix=/usr/local/apr
[root@Jaking12?apr-1.7.0]#?make
[root@Jaking12?apr-1.7.0]#?make?install

[root@Jaking12?apr-1.7.0]#?cd?..
[root@Jaking12?src]#?rz
rz?waiting?to?receive.
?zmodem?trl+C??

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

[root@Jaking12?src]#?ls
apr-1.7.0??apr-1.7.0.tar.gz??apr-util-1.6.1.tar.gz
[root@Jaking12?src]#?tar?xf?apr-util-1.6.1.tar.gz?
[root@Jaking12?src]#?ls
apr-1.7.0??apr-1.7.0.tar.gz??apr-util-1.6.1??apr-util-1.6.1.tar.gz
[root@Jaking12?src]#?cd?apr-util-1.6.1
[root@Jaking12?apr-util-1.6.1]#?./configure?--prefix=/usr/local/apr-util??--with-apr=/usr/local/apr
[root@Jaking12?apr-util-1.6.1]#?make
[root@Jaking12?apr-util-1.6.1]#?make?install
更多的选项可以通过./configure?--help?了解
官方的编译选项文档http://www.8997744.com/463/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??????????//指定默认的????[prefork?|?worker?|?event]	如3种MPM模块都编译了,则通过此项指定默认使用哪种
--with-pcre??????????????//依赖pcre库用于解决正则表达式问题。????##?安装??pcre-devel(兼容Perl的正则表达式库)
--enable-so?????????????//打开?so?模块,启用动态装载模块功能
--enable-ssl?????????????//启用ssl功能。注意要先安装,http使用
--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调优的一个重要选项之一
[root@Jaking12?apr-util-1.6.1]#?cd?..
[root@Jaking12?src]#?rz
rz?waiting?to?receive.
?zmodem?trl+C??

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

[root@Jaking12?src]#?ls
apr-1.7.0??apr-1.7.0.tar.gz??apr-util-1.6.1??apr-util-1.6.1.tar.gz??httpd-2.4.39.tar.gz
[root@Jaking12?src]#?tar?xf?httpd-2.4.39.tar.gz?
[root@Jaking12?src]#?ls
apr-1.7.0?????????apr-util-1.6.1?????????httpd-2.4.39
apr-1.7.0.tar.gz??apr-util-1.6.1.tar.gz??httpd-2.4.39.tar.gz
[root@Jaking12?src]#?cd?httpd-2.4.39
[root@Jaking12?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
[root@Jaking12?httpd-2.4.39]#?make?
[root@Jaking12?httpd-2.4.39]#?make?install

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

[root@Jaking12?httpd-2.4.39]#?ls?/usr/local/apache24/
bin??build??cgi-bin??conf??error??htdocs??icons??include??logs??man??manual??modules
[root@Jaking12?httpd-2.4.39]#?ls?/usr/local/apache24/conf/
extra??httpd.conf??magic??mime.types??original
[root@Jaking12?httpd-2.4.39]#?ls?/usr/local/apache24/bin/
ab?????????apxs??????dbmmanage??envvars-std??htcacheclean??htdigest??httpd??????logresolve
apachectl??checkgid??envvars????fcgistarter??htdbm?????????htpasswd??httxt2dbm??rotatelogs
[root@Jaking12?httpd-2.4.39]#?ll?/usr/local/apache24/bin/apachectl??
-rwxr-xr-x?1?root?dip?3440?Mar?10?16:45?/usr/local/apache24/bin/apachectl

启动 apache2.4

[root@Jaking12?httpd-2.4.39]#?/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

[root@Jaking12?httpd-2.4.39]#?/usr/local/apache24/bin/apachectl?graceful

查看 apache2.4 相关信息

[root@Jaking12?httpd-2.4.39]#?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??
[root@Jaking12?httpd-2.4.39]#?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.
[root@Jaking12?httpd-2.4.39]#?ls?/usr/local/apache24/htdocs
index.html
[root@Jaking12?httpd-2.4.39]#?cat?/usr/local/apache24/htdocs/index.html
It?works!

自定义首页内容

[root@Jaking12?httpd-2.4.39]#?vim?/usr/local/apache24/htdocs/index.html
It?works!
Hello?World!

设置文件共享服务

[root@Jaking12?httpd-2.4.39]#?cd?/usr/local/apache24/htdocs/
[root@Jaking12?htdocs]#?ls
index.html
[root@Jaking12?htdocs]#?touch?file{1..10}
[root@Jaking12?htdocs]#?ls
file1??file10??file2??file3??file4??file5??file6??file7??file8??file9??index.html
[root@Jaking12?htdocs]#?mv?index.html?index.html.bak
[root@Jaking12?htdocs]#?ls
file1??file10??file2??file3??file4??file5??file6??file7??file8??file9??index.html.bak

总结

至此,圣淘沙国际网上娱乐:实战演示源码编译 apache2.4完毕。