Apache 源码安装和配置
实施人系统软件
孙晓航Centos6.5httpd-2.4.25.tar.gzapr-1.5.2.tar.gzapr-util-1.5.4.tar.gzpcre-8.40.tar.gz
环境要求系统是最小化安装,缺少的编译文件用yum装。关闭防火墙,linux安全机制
Yum安装插件yum install -y gcc gcc-c++ cmake ncurses-devel bison opensslopenssl-devel libxml2 libxml2-devel libmcrypt libmcrypt-devel zlib zlib-devellibpng libpng-devel libtool jpeg6 libjpeg libjpeg-devel freetype freetype-develautoconf automake gd libXpm-devel curl curl-devel
编译安装apr、apr-util、pcre。# tar zxf apr-1.5.2.tar.gz
# cd apr-1.5.2
[root@localhostapr-1.5.2]# ./configure --prefix=/usr/local/apr //--prefix制定安装位置
[root@localhostapr-1.5.2]# make && make install //&& 这里指不间断执行下一个命令
# tar zxf apr-util-1.5.4.tar.gz
# cd apr-util-1.5.4
# ./configure// --prefix=/usr/local/apr-util //指定安装目录 --with-apr=/usr/local/apr/ //制定apr安装目录# make && makeinstall# ./configure--prefix=/usr/local/pcre && make && make install安装apache# tar zxf httpd-2.4.25.tar.gz # cd httpd-2.4.25# ./configure--prefix=/usr/local/apache-2.4.20 --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/--with-pcre=/usr/local/pcre/ --enable-so --enable-modules=most--enable-mods-shared=most --enable-rewrite --enable-ssl--enable-mpms-shared=all# make && makeinstall
# ln -s/usr/local/apache-2.4.20/ /usr/local/apache# echo'/usr/local/apache/bin/apachectl start' >> /etc/rc.local# cp/usr/local/apache-2.4.20/bin/apachectl /etc/init.d/httpd# service httpd start**** Hidden Message ********* Hidden Message *****打开浏览器访问主机的IP如下file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png配置文件解析一、Apache 主要配置文件注释
/application/apache/conf/httpd.conf # apache主要的配置文件
由于前文的编译安装我制定的安装目录为/application,所以我的配置文件在/application/apache/conf/httpd.conf,如果是rpm和yum安装的话,你的目录默认在/etc/httpd.conf
# egrep -v "^.*#|^$"httpd.conf |nl #去掉注释和空格行
1 ServerRoot "/application/apache2.2.22" # apache根目录,应只能root访问
2Listen 80 # apache服务默认的监听端口80 如果需要同时监听多个端口可以在后面加行:listen 81
3<IfModule !mpm_netware_module>
4<IfModule !mpm_winnt_module>
5User daemon # apache的用户,默认为daemon
6Group daemon # apache的用户,默认为daemon
7</IfModule>
8</IfModule>
9ServerAdmin you@example.com # 系统管理员邮箱,如果出现问题,会在首页显示
10DocumentRoot "/application/apache2.2.22/htdocs" # apache的默认web站点目录路径,结尾不要添加斜线
11<Directory /> # 11 - 16 行为对根目录的限制
12 Options FollowSymLinks #followsymlinks表示允许使用符号链接,默认为禁用
13 AllowOverride None # 表示禁止用户对目录配置文件(.htaccess进行修改)重载,普通站点不建议开启
14 Order deny,allow # 以deny方式优先处理,没有明确说明拒绝的话都通过,即允许未被明确拒绝的访问(从后往前)。
15 Deny from all # 明确指出拒绝所有访问
16</Directory>
17<Directory "/application/apache2.2.22/htdocs"> # 17 - 22 行为默认apache默认站点目录的限制配置(如果配置的站点不存在,出现403错误)
18 Options Indexes FollowSymLinks # FollowSymLinks 禁止使用符号链接Indexes 表示允许用户浏览目录
Options -Indexes FollowSymLinks 或者 OptionsFollowSymLinks表示取消目录浏览的功能
19 AllowOverride None # 表示禁止用户对目录配置文件(.htaccess进行修改)重载,不建议开启
20 Order allow,deny # 以allow优先处理,没有明确说明允许的话都拒绝,拒绝未被明确允许
21 Allow from all # 允许所有的访问
22</Directory>
23<IfModule dir_module>
24 DirectoryIndex index.html # 配置默认的apache首页文件,如果虚拟机中没有配置,应用这里的配置,多个用空格隔开
25</IfModule>
26<FilesMatch "^\.ht"> # 防止.htaccess和.htpasswd等重要隐藏文件被web用户查看
27 Order allow,deny
28 Deny from all
29 Satisfy All
30</FilesMatch>
31ErrorLog "logs/error_log" # 错误的日志路径logs为apache服务安装目录的相对路径
32LogLevel warn
33<IfModule log_config_module>
34 LogFormat "%h %l %u %t \"%r\"%>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined# 访问日志格式
35 LogFormat "%h %l %u %t \"%r\"%>s %b" common # 访问普通日志格式
36 <IfModule logio_module>
37 LogFormat "%h %l %u %t\"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\" %I %O" combinedio
38 </IfModule>
39 CustomLog "logs/access_log" common #默认站点访问日志配置
40</IfModule>
41<IfModule alias_module> # 41 - 51 CGI的配置,没有特殊需求可以注释和删除,目前基本已经淘汰
42 ScriptAlias /cgi-bin/ "/application/apache2.2.22/cgi-bin/"
43</IfModule>
44<IfModule cgid_module>
45</IfModule>
46<Directory "/application/apache2.2.22/cgi-bin">
47 AllowOverride None
48 Options None
49 Order allow,deny
50 Allow from all
51</Directory>
52DefaultType text/plain # DefaultType定义不能确定mime类型时服务器提供的默认MIME类型,如果服务主要包含text或html文档,“text/plain”是一个最好的选择
53<IfModule mime_module>
54 TypesConfig conf/mime.types
55 AddType application/x-compress .Z # addencoding允许你在信息传送中使用maxaic/X 2.1+解压缩信息(不能支持所有的浏览器)
56 AddType application/x-gzip .gz .tgz
57</IfModule>
58<IfModule ssl_module>
59SSLRandomSeed startup builtin
60SSLRandomSeed connect builtin
61</IfModule>
二、Apache扩展的配置文件
/application/apache/conf/extra # apache扩展的配置文件
# ll
total56
-rw-r--r--1 root root2859 Jan 10 01:49 httpd-autoindex.conf
-rw-r--r--1 root root1753 Jan 10 01:49 httpd-dav.conf
-rw-r--r--1 root root2344 Jan 10 01:49 httpd-default.conf
-rw-r--r--1 root root1103 Jan 10 01:49 httpd-info.conf
-rw-r--r--1 root root5078 Jan 10 01:49 httpd-languages.conf
-rw-r--r--1 root root 932 Jan 10 01:49 httpd-manual.conf
-rw-r--r--1 root root3789 Jan 10 01:49 httpd-mpm.conf
-rw-r--r--1 root root2207 Jan 10 01:49 httpd-multilang-errordoc.conf
-rw-r--r--1 root root 11185 Jan 10 01:49 httpd-ssl.conf
-rw-r--r--1 root root 817 Jan 10 01:49 httpd-userdir.conf
-rw-r--r--1 root root1507 Jan 10 01:49 httpd-vhosts.conf # 虚拟主机配置文件
三、httpd-vhosts.conf虚拟主机配置文件注释
# egrep -v "^.*#|^$"httpd-vhosts.conf |nl
1NameVirtualHost *:80 # 基于名称的虚拟主机配置( *:80表示监听本机所有ip)
2<VirtualHost *:80> # 定义一个虚拟主机
3 ServerAdmin webmaster@dummy-host.example.com # 配置管理员邮箱
4 DocumentRoot"/application/apache2.2.22/docs/dummy-host.example.com"# 程序的站点目录
5 ServerName dummy-host.example.com # 域名服务,需要apache mode_alias模块支持
6 ServerAlias www.dummy-host.example.com # 虚拟主机别名
7 ErrorLog"logs/dummy-host.example.com-error_log"# 错误的日志路径
8 CustomLog"logs/dummy-host.example.com-access_log" common#访问日志配置(生产环境我们用combined格式代替common格式)
9</VirtualHost>
10<VirtualHost *:80>
11 ServerAdmin webmaster@dummy-host2.example.com
12 DocumentRoot"/application/apache2.2.22/docs/dummy-host2.example.com"
13 ServerName dummy-host2.example.com
14 ErrorLog"logs/dummy-host2.example.com-error_log"
15 CustomLog"logs/dummy-host2.example.com-access_log" common
16</VirtualHost>
四、Apache服务存放站点的目录
/application/apache/htdocs # 默认存放网页的路径,输入IP 到此目录 能够见到it's wroks! 就是此目录
# lessindex.html
<html><body><h1>Itworks!</h1></body></html>
五、Apache服务目录结构说明
# ls /application/apache/
bin buildcgi-binconferrorhtdocsicons includeliblogsmanmanualmodules
bin启动文件目录说明
|--bin #apache服务的命令目录
||-- ab # http服务性能测试工具
||-- apachectl # apache启动命令
||-- apr-1-config
||-- apu-1-config
||-- apxs # http服务编译和安装扩展模块使用工具,在DSO方式模块编译时用到
||-- checkgid
||-- dbmmanage
||-- envvars
||-- envvars-std
||-- htcacheclean # 清理磁盘缓冲区的控制命令
||-- htdbm
||-- htdigest
||-- htpasswd # 建立和更新基本认证文件
||-- httpd # httpd为apache的控制命令程序
||-- httxt2dbm
||-- logresolve
| -- rotatelogs # apache自带的日子轮询命令(cronolog生产环境使用比较多)。
conf配置文件目录
# ls /application/apache/conf/
extra httpd.confmagicmime.typesoriginal
/application/apache/conf/ # apache配置所有的配置文件目录
|--extra # 额外的apache配置文件目录如:httpd-vhost.conf
||-- httpd-autoindex.conf
||-- httpd-dav.conf
||-- httpd-default.conf
||-- httpd-info.conf
||-- httpd-languages.conf
||-- httpd-manual.conf
||-- httpd-mpm.conf
||-- httpd-multilang-errordoc.conf
||-- httpd-ssl.conf
||-- httpd-userdir.conf
||-- httpd-vhosts.conf
|--httpd.conf # apache主配置文件
|--magic
|--mime.types
|--original
||-- extra
|| |-- httpd-autoindex.conf
|| |-- httpd-dav.conf # dav支持配置
|| |-- httpd-default.conf # 这个文件里配置的是apache的相关服务参数:超时时间、保持链接
|| |-- httpd-info.conf
|| |-- httpd-languages.conf # 语言支持
|| |-- httpd-manual.conf
|| |-- httpd-mpm.conf # 服务器池管理,也是优化apache的一个配置文件(apache的模式以及配置链接数,常用模式为worker模式和profork模式,默认porfork)
|| |-- httpd-multilang-errordoc.conf
|| |-- httpd-ssl.conf # 提供apachessl支持配置文件
|| |-- httpd-userdir.conf
|| |-- httpd-vhosts.conf # 虚拟机的配置文件
||-- httpd.conf
站点存放目录
# ls -l htdocs/ # 默认的首页文件都放在此目录当中。
total4
-rw-r--r--1 root root 44 Nov 212004 index.html
日志存放目录
# tree logs
logs # apache服务默认的日志路径,包括错误日志和访问日志
|--access_log # apache服务访问日志 tail -f命令可以查看网页用户访问的信息
|--cgisock.16406
|--error_log # apache服务的错误日志。如:apache服务启动故障
|--httpd.pid # httpd的pid文件,http进程启动后,会把所有进程的id号写到此文件
模块目录
# ls -l manual/ # apache的模块目录如php mencache
total2984
-rw-r--r--1 root root 543 May62008 bind.html
-rw-r--r--1 root root 11422 Jan32012 bind.html.de
学习了,很详细 学习一下看看
学习一下谢谢
不错,现在就试用下
页:
[1]