源码编译 apache2.4

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://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          //指定默认的    [prefork | worker | event] 如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调优的一个重要选项之一

[root@Jaking12 apr-util-1.6.1]# cd ..[root@Jaking12 src]# rzrz waiting to receive. zmodem trl+C ȡ  100%    8983 KB 8983 KB/s 00:00:01      0 Errors[root@Jaking12 src]# lsapr-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]# lsapr-1.7.0        apr-util-1.6.1        httpd-2.4.39apr-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      logresolveapachectl  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完毕。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351