linux 2.4 源码,源码编译 apache2.4

导读

本文档实战演示源码编译 apache2.4,来自传棋的原创文档。

实战

[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]# 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!

8e32d920eda57b3514834cdc54f97faf.png

自定义首页内容

[root@Jaking12 httpd-2.4.39]# vim /usr/local/apache24/htdocs/index.html

It works!

Hello World!

29f0c0e727b9faec1e5eede3933b460f.png

设置文件共享服务

[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

1a480b9d85696c2276a4779c0ead5653.png

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值