Apche Httpd安装与配置

查看系统是否安装了httpd

rpm -qa | grep httpd  或者 yum list |grep httpd

安装需要的tar包有:

httpd-2.2.22.tar.gz,apr-1.4.6.tar.gz,apr-util-1.5.2.tar.gz,pcre-8.32.tar.gz

安装顺序为apr、apr-util、pcre、httpd。

安装httpd后的使用rpm  -ql  httpd查看基本信息

服务脚本:/etc/rc.d/init.d/httpd

运行目录:/etc/httpd/

配置文件:/etc/httpd/conf

主配置文件:/etc/httpd/conf/httpd.conf

扩展配置:/etc/httpd/conf.d/*.conf

socket:http:80/tcp,https:443/tcp

网页文件目录(DocumentRoot):/var/www/html

CGI:/var/www/cgi-bin/

默认主页面文件:/var/www/html/index.html

操作httpd服务命令

1. 启动 apachectl -k start

2. 停止 apachectl -k stop

3. 状态 apachectl –k graceful

4. 重启 apachectl –k restart

5.service httpd configtest #测试配置文件有没有语法错误

6.httpd -t #同上

7.httpd -l #当前服务器所使用的模型及开启模块

8.httpd -D DUMP_MODULES #当前服务器支持的模块

9.service httpd reload #重新加载配置文件

10.service httpd restart #重启httpd服务

注意:修改配置文件后要重新加载配置文件,修改服务器监听端口后要重启

服务

Httpd主配置文件/etc/httpd/conf/httpd.conf详解

1.ServerRoot "/etc/httpd"

用于指定Apache的运行目录,服务启动之后自动将目录改变为当前目

录,在后面使用到的所有相对路径都是想对这个目录下。服务器配置、出错信息,

日志文件都保存在此目录下。注意:不要在目录末尾加“/”

2.PidFile run/httpd.pid

服务器用于记录启动时进程ID的文件。记录httpd守护进程的pid号码,这是系统

识别一个进程的方法,系统中httpd进程可以有多个,但这个PID对应的进程是其

他的父进程

3.Timeout 60

服务器与客户端断开的时间。如果用户端超过60秒还没连上server,或server超过

60秒还没传送信息给用户端,即断线。

4.KeepAlive Off

是否持续连接(因为每次连接都得三次握手,如果是访问量不大,建议打开此项,

如果网站访问量比较大关闭此项比较好),修改为:KeepAlive On 表示允许程序

性联机

5.MaxKeepAliveRequests 100

表示一个连接的最大请求数,设置为0表示无限制,建议设置较高的值,以获得最

好的性能。

MinSpareServer 5
      ·MaxSpareServers 10
        MinSpareServer 5表示最少会有5个闲置的处理程序,如果实际的数目少于此数目,

则会增加处理程序。MaxSpareServers 10表示最大的闲置处理程序数目,如果你的

网站需求量很大,可以将此数目设大一些,大不要随便将此数目设得太大。

StartServers 5
         启动时Server的数目
         MaxClients 150
         限制同时间最大的连线数目,当然不能设得太小,一旦达到此数目,就无法再增

加用户端
       ·MaxRequestPerChild 0
         限制子处理程序结果前的要求数目,0表示不限制

6.KeepAliveTimeout 15

同一连接同一客户端两个请求之间的等待时间。

7.<IfModule prefork.c>

StartServers       8

MinSpareServers    5

MaxSpareServers   20

ServerLimit      256

MaxClients       256

MaxRequestsPerChild  4000

</IfModule>

系统默认的模块,表示为每个访问启动一个进程(即当有多个连接公用一个

进程的时候,在同一时刻只能有一个获得服务)。
           StartServer开始服务时启动8个进程,最小空闲5个进程,最多空闲20个进程。
           MaxClient限制同一时刻客户端的最大连接请求数量超过的要进入等候队列。
           MaxRequestsPerChild每个进程生存期内允许服务的最大请求数量,0表示永不结

束。

8.<IfModule worker.c>

StartServers         4

MaxClients         300

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     25

MaxRequestsPerChild  0

</IfModule>

为Apache配置线程访问,即每对WEB服务访问启动一个线程,这样对内存占

用率比较小。
            ServerLimit服务器允许配置进程数的上限。
            ThreadLimit每个子进程可能配置的线程上限
            StartServers启动两个httpd进程,
            MaxClients同时最多能发起250个访问,超过的要进入队列等待,其大小有

ServerLimit和ThreadsPerChild的乘积决定
            ThreadsPerChild每个子进程生存期间常驻执行线程数,子线程建立之后将不再

增加
            MaxRequestsPerChild每个进程启动的最大线程数,如达到限制数时进程将结

束,如置为0则子线程永不结束

9.#Listen 12.34.56.78:80

Listen 80

允许将Apche绑定到指定的IP和端口,监听的端口,如有多块网卡,

默认监听所有网卡参见<VirtualHost>

10.150-221行为启动时加载的模块

11.Include conf.d/*.conf  加载的配置文件

12. User  apache   Group apache  启动服务后转换的身份,在启动服

务时通常以root身份,然后转换身份,这样增加系统安全。

13.ServerAdmin root@localhost 管理员邮箱

14.ServerName www.example.com:80

默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果

解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定

IP地址,当这项不正确的时候服务器不能正常启动。前面启动Apache时候

提示正在启动 httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could

not reliably determine the server's fully qualified domain name, using

127.0.0.1forServerName,解决方法就是启动该项把www.example.com:80修改

为自己的域名或者直接修改为localhost。
              注: 主机名不能随便指定。必须是你的机器有效的DNS名称。

否则无法正常工作。
                 如果不能理解,倾向你的网络管理员询问。
                 如果你的主机没有注册DNS名,可在此输入IP地址。
                 此时必须用IP地址来访问。(如, http://123.45.67.89/)
                 这样扔可以完成重新定向的工作。
                 127.0.0.1 是TCP/IP的本地环路地址, 通常命名为localhost.
                 机器默认此地置为本身。 如果只是使用Apache来进行本地测试和开发,
                 可使用127.0.0.1 作为服务器名.

15.UseCanonicalName Off

如果客户端提供了主机名和端口,Apache将会使用客户端提供的这些信息

来构建自引用URL。这些值与用于实现基于域名的虚拟主机的值相同,并

且对于同样的客户端可用。CGI变量SERVER_NAME和SERVER_PORT

也会由客户端提供的值来构建。

16.DocumentRoot "/var/www/html"

网页文件存放的目录

17.<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

对根目录的一个权限的设置

18.<Directory "/var/www/html">

Options Indexes FollowSymLinks

AllowOverride None #此项控制目录中哪些.htaccess文件可覆盖。

Order allow,deny #控制哪些用户可从此服务器获得资料。

Allow from all

</Directory>

对/var/www/html目录的一个权限的设置,这个地址必须和DcoumentRoot保持一致。options中Indexes表示当网页不存在的时候允许索引显示目录中的文件,FollowSymLinks是否允许访问符号链接文件。有的选项有ExecCGI表是否使用CGI,如Options Includes ExecCGI FollowSymLinks表示允许服务器执行CGI及SSI,禁止列出目录。SymLinksOwnerMatch表示当符号链接的文件和目标文件为同一用户拥有时才允许访问。AllowOverrideNone表示不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件,修改为:AllowOverride All 表示允许.htaccess。Order对页面的访问控制顺序后面的一项是默认选项,如allow,deny则默认是deny,Allowfromall表示允许所有的用户,通过和上一项结合可以控制对网站的访问控制

19.<IfModule mod_userdir.c>

UserDir disabled

</IfModule>

是否允许用户访问其家目录,默认是不允许

20.#<Directory /home/*/public_html>

# AllowOverride FileInfo AuthConfig Limit

# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

#    <Limit GET POST OPTIONS>

#        Order allow,deny

#        Allow from all

#    </Limit>

#    <LimitExcept GET POST OPTIONS>

#        Order deny,allow

#        Deny from all

#    </LimitExcept>

#</Directory>

如果允许访问用户的家目录中的网页文件,则取消以上注释,并对其中进

行修改

22.DirectoryIndex index.html index.html.var

指定所要访问的主页的默认主页名字,默认首页文件名为index.html

23.AccessFileName .htaccess

定义每个目录下的访问控制文件名,缺省为.htaccess

24.<Files ~ "^\.ht">

Order allow,deny

Deny from all

Satisfy All

</Files>

控制不让web上的用户来查看.htpasswd和.htaccess这两个文件

25.TypesConfig /etc/mime.types

用于设置保存有不同MIME类型数据的文件名

26.DefaultType text/plain

默认的网页的类型

27.<IfModule mod_mime_magic.c>

#   MIMEMagicFile /usr/share/magic.mime

MIMEMagicFile conf/magic

</IfModule>

指定判断文件真实MIME类型功能的模块

28.HostnameLookups Off

当打开此项功能时,在记录日志的时候同时记录主机名,这需要服务器来反

向解析域名,增加了服务器的负载,通常不建议开启

29.#EnableMMAP off

是否允许内存映射:如果httpd在传送过程中需要读取一个文件的内容,它

是否可以使用内存映射。如果为on表示如果操作系统支持的话,将使用内

存映射。在一些多核处理器的系统上,这可能会降低性能,如果在挂载了

NFS的DocumentRoot上如果开启此项功能,可能造成因为分段而造成httpd

崩溃

30.#EnableSendfile off

这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送

到客户端。默认情况下,当处理一个请求并不需要访问文件内部的数据时(比

如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile

将文件内容直接发送到客户端而并不读取文件

31.ErrorLog logs/error_log

错误日志存放的位置

32.LogLevel warn

Apache日志的级别

33.LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

定义了日志的格式,并用不同的代号表示

34.#CustomLog logs/referer_log referer

#CustomLog logs/agent_log agent

说明日志记录的位置,这里面使用了相对路径,所以ServerRoot需要指出,日

志位置就存放在/etc/httpd/logs

35.ServerSignature On

定义当客户请求的网页不存在,或者错误的时候是否提示apache的版本的一

些信息

36.Alias /icons/ "/var/www/icons/"

定义一些不在DocumentRoot下的文件,而可以将其映射到网页根目录中,这

也是访问其他目录的一种方法,但在声明的时候切记目录后面加”/”

37.<Directory "/var/www/icons">

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

定义对/var/www/icons/的权限,修改为 Options MultiViews FollowSymLinks

表示不在浏览器上显示树状目录结构

38.<IfModule mod_dav_fs.c>

# Location of the WebDAV lock database.

DAVLockDB /var/lib/dav/lockdb

</IfModule>

对mod_dav_fs.c模块儿的管理

39.ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

对CGI模块儿的的别名,与Alias相似。

40.<Directory "/var/www/cgi-bin">

AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>

对/var/www/cgi-bin文件夹的管理,方法同上

关于cgi执行脚本的配置,这里有两种设置CGI脚本的方法。第一、CGI的脚本文件以.cgi为扩展名;第二、设置脚本可执行目录。但是这两种方法都需要将要执行的文件设置为711,才可以被执行。
第一种方法,我们需要在access.conf文件种将你要发行的目录设置为Option ExecCGI All,在srm.conf资源配置文件中,加上下列一句:
AddHandle cgi-script .cgi
这样在所有的目录种只要你的文件是.cgi为扩展名的,且文件访问权限为711的,无论给文件在你发行目录的任何一个地方都可以做为CGI被Apache服务器调用。这种方法一般没有第二种方法安全。
第二种方法,是将一个目录作为一个可执行目录,将所有的cgi文件都放在其中,这里就不一定非得是以.cgi为扩展名得文件可以执行,而是只要有711属性的文件就可以被执行,而且其它的非可执行文件都被禁止访问只要在/home/httpd/cgi-bin/目录中的可执行文件都可以被Web服务器调用,而其它的非可执行文件将被拒绝访问。

41.# Redirect old-URI new-URL

Redirect参数是用来重写URL的,当浏览器访问服务器上的一个已经不存在的资源的时候,服务器返回给浏览器新的URL,告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档改变位置之后,又需要能够使用老URL能访问到原网页

42.IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable

Charset=UTF-8 
          AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
           ... 
          IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

当一个HTTP请求的URL为一个目录的时候,服务器返回这个目录中的索引文件,如果目录中不存在索引文件,并且服务器有许可显示目录文件列表的时候,就会显示这个目录中的文件列表,为了使得这个文件列表能具有可理解性,而不仅仅是一个简单的列表,就需要前这些参数。如果使用了IndexOptionsFancyIndexing选项,可以让服务器针对不同的文件引用不同的图标。如果没有就使用DefaultIcon定义缺省图标。同样,使用AddDescription可以为不同类型的文档介入描述

43.AddLanguage ca .ca 
        ...... 
        AddLanguage zh-TW .zh-tw

添加语言

44 .LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt

pt-BR ru sv zh-CN zh-TW

Apache支持的语言

45. AddDefaultCharset UTF-8

默认支持的语言

46. #AddType application/x-tar .tgz

支持的应用如果想支持对php的解析添加这样一行

47.#AddEncoding x-compress .Z 
         #AddEncoding x-gzip .gz .tgz

支持对以.Z和.gz.tgz结尾的文件

48.AddType application/x-compress .Z 
         AddType application/x-gzip .gz .tgz

添加对上述两种文件的应用

49.#AddHandler cgi-script .cgi

修改为:AddHandler cgi-script .cgi .pl 表示允许扩展名为.pl的CGI脚本运行

50.AddType text/html .shtml 
          AddOutputFilter INCLUDES .shtml

添加动态处理类型为server-parsed由服务器预先分析网页内的标记,将标记

改为正确的HTML标识

51#ErrorDocument 404 /missing.html

当服务器出现404错误的时候,返回missing.html页面

52. Alias /error/ "/var/www/error/"

赋值别名

53.<IfModule mod_negotiation.c>

<IfModule mod_include.c>

<Directory "/var/www/error">

AllowOverride None

Options IncludesNoExec

AddOutputFilter Includes html

AddHandler type-map var

Order allow,deny

Allow from all

LanguagePriority en es de fr

ForceLanguagePriority Prefer Fallback

</Directory>

</IfModule>

</IfModule>

对/var/www/error网页的权限及操作

54.BrowserMatch "Mozilla/2" nokeepalive 
          BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 
          BrowserMatch "RealPlayer 4\.0" force-response-1.0 
          BrowserMatch "Java/1\.0" force-response-1.0 
          BrowserMatch "JDK/1\.0" force-response-1.0

设置特殊的参数,以保证对老版本浏览器的兼容,并支持新浏览器的特性

Virtual Hosts

55.#NameVirtualHost *:80

如果启用虚拟主机的话,必须将前面的注释去掉,而且,第二部分的内容都可以

出现在每个虚拟主机部分。
         # VirtualHost example:

#<VirtualHost *:80>

#    ServerAdmin webmaster@dummy-host.example.com

#    DocumentRoot /www/docs/dummy-host.example.com

#    ServerName dummy-host.example.com

#    ErrorLog logs/dummy-host.example.com-error_log

#    CustomLog logs/dummy-host.example.com-access_log common

#</VirtualHost>

转载于:https://blog.51cto.com/dezewuyou/1788287

Apche Httpd安装与配置相关推荐

  1. LVS+Keepalived+httpd安装及配置

    LVS+Keepalived+httpd安装及配置 原文:http://blog.csdn.net/yanpenglei/article/details/53838354 环境 操作系统 CentOS ...

  2. Linux 下Apache(httpd) 安装、配置

    注意:这里使用的是CentOS版,RedHat系都可以用.因为用到了yum 一.手动安装 也可以直接看下面2的yum在线安装 1. 准备 有些linux版本中已经预置了有Apache,并且已经是服务了 ...

  3. PHP源码安装及配置——以fastCGI的方式与httpd整合

    在前一篇博文中介绍了LAMP的安装及配置.这里专门介绍PHP以fastCGI的方式与httpd整合的情况下,具体如何编译及配置.而且假定httpd.mysql均如前一篇博文介绍的安装配置完毕.php也 ...

  4. php mysql 源码 安装教程_源码安装和配置apache(httpd)和 PHP 和 mysql全过程(一)...

    [服务器环境为:CentOS6.5 64位目标:搭建LNMP(Linux + Nginx + MySQL + PHP +SVN),其中svn是用来代替ftp,方便开发中调试同步代码相关目录:所有软件都 ...

  5. Linux实验之www、httpd服务器的安装与配置

    实验目的: 学会在Linux系统下搭建WWW服务器并掌握其基础配置. 实验内容: 在系统中使用RPM软件包安装Apache,搭建WWW服务器 掌握WWW服务器的配置和启动的相关知识 架设一个个人Web ...

  6. 小型网络中心服务器配置(四)WWW服务器的安装与配置

    小型网络中心服务器配置(四)WWW服务器的安装与配置 为做好模拟总公司及分公司网站的建设,网络中心经过研究,拟建立一台www服务器,存放公司总站网站.各分公司网站,维护和更新则由各自分公司自己进行,具 ...

  7. cacti系列(一)之cacti的安装及配置监控mysql服务

    简介 Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构 ...

  8. 在Red Hat Linux5下构建LAMP网站服务平台之MySQL、PHP的安装与配置

    在Red Hat Linux5下构建LAMP网站服务平台之MySQL.PHP的安装与配置 2010-09-09 16:40:49 标签:PHP Linux mysql RedHat [推送到技术圈] ...

  9. apache 安装与配置详细教程

    Linux Apache web服务器 学习要点: 1.apache用途,工作模式,httpd.conf的配置重要参数 2.虚拟主机 3. 工作模式的参数优化 Apache 概述: Apache是世界 ...

最新文章

  1. python 应声虫怎么做_职场人士如何处理好人际关系:要服从,但不要做毫无主见的应声虫...
  2. 我用Java+SeimiCrawler+Redis+ES+Kibana技术对数百万知乎用户进行了数据分析,得到了这些......
  3. 怎么查看自己linux实验环境,Linux实验
  4. iOS截取特定的字符串(正则匹配)
  5. 近期 AI 领域,招聘招生信息汇总
  6. 用WM_COPYDATA消息来实现两个进程之间传递数据
  7. Jenkins中使用scm拉取代码
  8. 每个极客都应该知道的Linux技巧
  9. Java 从入门到放弃?
  10. 【思维导图】旅行物品清单
  11. Mysql监控工具–mytop
  12. python通过pyserial读写串口
  13. 单层感知器python_深度学习之单层感知器(一)
  14. 【全面总结】大厂测试开发面试常见面试题101道
  15. 在Vue2中使用百度脑图kityminder-core
  16. 支付宝扫码跳转到跳转页面
  17. SIM7600CE模块MQTT协议的AT指令流程
  18. 2021 年最佳开源软件榜单,Python 高性能框架 FastAPI 上榜了!
  19. kafka broker 进入 conflicted ephemeral node 死循环
  20. 51单片机small compact large区别

热门文章

  1. 2019年深度学习的十大预测
  2. 中国机器人产业发展报告(2018)正式发布!
  3. 女朋友什么的都是浮云,代码才是真爱!
  4. 996 成福报?拼多多个别部门让员工在 “11-11-6” 和 996 中二选一
  5. 前端项目课程3 jquery1.8.3到1.11.1有了哪些新改变
  6. jdbcTemplate 调用存储过程。 入参 array 返回 cursor
  7. 乌云爆告之双十一电商的安全警示
  8. windows 注册表讲解
  9. Centos6.5安装Seafile,遇到的问题处理记录。
  10. linux网络编程-posix信号量与互斥锁(39)