• 欢迎访问VPS岛网站,国外VPS,国内VPS,国外服务器,国内服务器,服务器主机,测评及优惠码,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群

Apache编译安装

Apache技术 warm51cto 18次浏览 已收录 0个评论

下载http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz

官网:www.apache.org

## 解压

[root@localhost support-files]# cd /usr/local/src/

[root@localhost src]# tar zxf httpd-2.2.16.tar.gz

## 编译

[root@localhost src]# cd httpd-2.2.16

[root@localhost httpd-2.2.16]# ./configure –prefix=/usr/local/apache2 –with-included-apr –enable-so –enable-deflate=shared –enable-expires=shared –enable-rewrite=shared –with-pcre

httpd是以模块形式工作,如果进行代理和跳转,支持分析、状态灯功能;

–prefix指定安装路径

–with-included-apr是apache这个软件http它要依赖的包,可以支持httpd能够跨平台去运作

–enable-so 支持dso后期动态加载模块

–enable-deflate=shared –enable-expires=shared –enable-rewrite=shared以动态共享模式来安装

–with-pcre是正则相关的库

./configure –prefix=/usr/local/apache2 –enable-mods-shared=most –enable-so)以前是这样编译的,我下面的操作

也是用的这个,没有用上面的。

## 验证上一步的操作状态(0为正确)

[root@localhost httpd-2.2.16]# echo $?

0

## 安装

[root@localhost httpd-2.2.16]# make && make install

[root@localhost httpd-2.2.16]# echo $?

0

## 查看模块.so全都是动态加载模块most会将这些模块编译出来

[root@localhost httpd-2.2.16]# ls /usr/local/apache2/modules/

httpd.exp             mod_authz_default.so    mod_env.so         mod_negotiation.so

mod_actions.so        mod_authz_groupfile.so  mod_expires.so     mod_reqtimeout.so

mod_alias.so          mod_authz_host.so       mod_ext_filter.so  mod_rewrite.so

mod_asis.so           mod_authz_owner.so      mod_filter.so      mod_setenvif.so

mod_auth_basic.so     mod_authz_user.so       mod_headers.so     mod_speling.so

mod_auth_digest.so    mod_autoindex.so        mod_ident.so       mod_status.so

mod_authn_anon.so     mod_cgi.so              mod_p_w_picpathmap.so    mod_substitute.so

mod_authn_dbd.so      mod_dav_fs.so           mod_include.so     mod_userdir.so

mod_authn_dbm.so      mod_dav.so              mod_info.so        mod_version.so

mod_authn_default.so  mod_dbd.so              mod_log_config.so  mod_vhost_alias.so

mod_authn_file.so     mod_dir.so              mod_logio.so

mod_authz_dbm.so      mod_dumpio.so           mod_mime.so

## 查看配置文件语法

[root@localhost apache2]# /usr/local/apache2/bin/httpd -t

httpd: Could not reliably determine the server’s fully qualified domain name, using 192.168.149.143 for ServerName

Syntax OK

## 查看静态加载的模块

[root@localhost apache2]# /usr/local/apache2/bin/httpd -l

Compiled in modules:

  core.c 核心

  prefork.c #工作模式2.2默认       {event|worker|prefork}             工作模式2.4默认event

  http_core.c

  mod_so.c

## 查看编译时如何指定工作模式

[root@localhost apache2]# /usr/local/src/httpd-2.2.16/configure –help

WEBRESOURCEe67a9c27022a950293743cd6d0850

编译时指定工作模式–with-mpm=MPM

prefork 一个父进程生成很多个子进程

worker 进程和线程共存

## 查看已加载的模块

[root@localhost apache2]# /usr/local/apache2/bin/httpd -M

## 查看编译选项

[root@localhost apache2]# cat /usr/local/apache2/build/config.nice

#! /bin/sh

#

# Created by configure

 

“./configure” \

“–prefix=/usr/local/apache2” \

“–enable-mods-shared=most” \

“–enable-so” \

“$@”

## 启动httpd

[root@localhost apache2]# /usr/local/apache2/bin/apachectl start

包含以下选项:{start|restart|graceful|graceful-stop|stop}

## prefork的特点就是一个父进程5个子进程

[root@localhost apache2]# ps aux |grep httpd

root      5481  0.0  0.4 120700  2404 ?        Ss   03:33   0:00 /usr/local/apache/bin/httpd -k start

daemon    5482  0.0  0.3 120700  1728 ?        S    03:33   0:00 /usr/local/apache/bin/httpd -k start

daemon    5483  0.0  0.3 120700  1728 ?        S    03:33   0:00 /usr/local/apache/bin/httpd -k start

daemon    5484  0.0  0.3 120700  1728 ?        S    03:33   0:00 /usr/local/apache/bin/httpd -k start

daemon    5485  0.0  0.3 120700  1728 ?        S    03:33   0:00 /usr/local/apache/bin/httpd -k start

daemon    5486  0.0  0.3 120700  1728 ?        S    03:33   0:00 /usr/local/apache/bin/httpd -k start

## 报错原因

httpd: Could not reliably determine the server’s fully qualified domain name, using 192.168.219.128 for ServerName

[root@localhost apache2]# vim /usr/local/apache2/conf/httpd.conf

ServerName www.example.com:80

DocumentRoot “/usr/local/apache2/htdocs” #默认网站根目录

## 修改配置文件后测试语句

[root@localhost apache2]# /usr/local/apache2/bin/apachectl -t

Syntax OK

## 重新加载配置文件,不杀死进程的方式重新调度配置文件

[root@localhost apache2]# /usr/local/apache2/bin/apachectl graceful

## 在网页中测试

WEBRESOURCE5742aa002401ed33e7d1030faa39b

## 在命令行中测试

[root@localhost apache2]# curl -Is 192.168.219.128|head -1

HTTP/1.1 200 OK

 

解释:动态与静态

shared:有这么一根绳子很细是独立的,模块就好像吊坠,当用的时候再挂在绳子上;

static:而静态则所有的吊坠都挂在绳子上,不管好看不好看,是否累赘都挂上;

每个模块都需要分配一定量的内存空间,比较占用资源,建议使用shared



Apache的mpm工作模式


## 可以查看到apache在哪个工作模式下运行

[root@localhost apache2]# /usr/local/apache2/bin/httpd -l

常用三种模式:prefork  worker   event

     prefork  子进程,每个子进程有单独的内存

     worker   主进程也有子进程,每个子进程下面还有线程

                 线程与进程区别:线程是进程下面的派生出来的一些更小单位的一种方式;

                                 在线程下,一个进程的内存会共享给所有的线程去使用。

     event    是worker的升级版;在性能方面,比如保持长连接,event要比worker更要好一些。


进程与线程的关系:大哥小弟



VPS岛 的文章和资源来自互联网,仅作为参考资料,如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。丨 转载请注明Apache编译安装
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址