设为首页 收藏本站
查看: 676|回复: 0

[经验分享] Apache学习之 一、 HTTPD 的安装与配置

[复制链接]

尚未签到

发表于 2017-1-8 12:56:23 | 显示全部楼层 |阅读模式
  Httpd安装与配置
(转载自黎明你好:http://limingnihao.iteye.com/blog/1934530)


1.1 简介

        Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性[1]被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
功能包括目录索引、目录别名、内容协商、可配置的HTTP错误报告、CGI程序的SetUID执行、子进程资源管理、服务器端图像映射、重写URL、URL拼写检查以及联机手册等。
Apache HTTP服务器本身没有提供Servlet/JSP容器。因此,在实际应用中,把Tomcat与Apache集成,可以建立具有实用价值的商业化的Web平台。
 

1.2 安装

1.2.1 Windows安装

        下载文件,window版本,http://httpd.apache.org,下载文件为httpd-2.2.22-win32-x86-openssl-0.9.8t.msi。
 

1.2.2 Linux安装

下载TAR包
        需要使用到的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
 
 安装TAR包
        将每个tar包解压以后(tar –vxf),开始安装。 安装顺序为apr、apr-util、pcre、httpd。
        如果在执行make是说找不到gcc编译环境,那么需要安装gcc编译环境:

Java代码 DSC0000.gif   DSC0001.png DSC0002.gif





  • yum install gcc gcc-c++ autoconf automake  



yum install gcc gcc-c++ autoconf automake
 
i. 安装apr

Java代码  





  • ./configure --prefix=/usr/local/apr  
  • make  
  • make test  
  • make install  



./configure --prefix=/usr/local/apr
make
make test
make install
 
ii. 安装apr-util

Java代码  





  • ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/bin/apr-1-config  
  • make  
  • make test  
  • make install  



./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/bin/apr-1-config
make
make test
make install
 
iii. 安装pcre

Java代码  





  • ./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr-1-config  
  • make  
  • make install  



./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/bin/apr-1-config
make
make install
 
iv. 安装httpd

Java代码  





  • ./configure --prefix=/opt/apache/httpd --with-apr=/opt/apache/apr/bin/apr-1-config --with-apr-util=/opt/apache/apr-util/bin/apu-1-config --with-pcre=/opt/apache/pcre/bin/pcre-config  
  • make  
  • make install  



./configure --prefix=/opt/apache/httpd --with-apr=/opt/apache/apr/bin/apr-1-config --with-apr-util=/opt/apache/apr-util/bin/apu-1-config --with-pcre=/opt/apache/pcre/bin/pcre-config
make
make install
 
v. 启动httpd
1. 启动 apachectl -k start
2. 停止 apachectl -k stop
3. 状态 apachectl –k graceful
4. 重启 apachectl –k restart
 

1.2.3 修改运行用户

        必须修改<IfModule unixd_module>中的所属用户和组。后面添加虚拟路径的文件夹必须拥有这个用户和组的读写权限,否则会报权限的错。
 

1.2.4 httpd添加虚拟路径

        打开conf文件夹,在httpd.conf配置文件中添加一段:
 

Java代码  





  • Alias /share "/home/vcs/service/data/version"  
  • <Directory "/home/vcs/service/data/version">  
  •     Options Indexes MultiViews  
  •     AllowOverride None  
  •     Order allow,deny  
  •     Allow from all  
  • </Directory>  



Alias /share "/home/vcs/service/data/version"
<Directory "/home/vcs/service/data/version">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
 
 
        通过ls –l查看此文件夹的权限,看apache运行的用户是否拥有权限。
        可以通过chown user file –R修改文件夹的拥有者、chgrp group file –R修改文件夹的拥有组。
 

1.2.5 httpd加入系统服务

        系统服务里面没有apache或者httpd服务,每次启动都要/usr/local/apache2/bin/apachectl start。比较麻烦,下面的操作可以将httpd装入到服务中,同理也可以用到其他的服务操作。
 
        1.将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可。命令如下:
            cp  bin/apachectl /etc/init.d/httpd  //如果有其他的版本的Apache存在,也可以直接覆盖掉
            ln -s /etc/init.d/httpd /etc/rc.d/rc5.d/S85httpd      //建立链接(85的意义后面介绍)
            此时Apache就可以自动启动了。
 
        2.运行chkconfig --list,发现没有linux服务列表中httpd,通过chkconfig –add httpd来添加,但是提示:httpd服务不支持 chkconfig。
            需要编辑/etc/rc.d/init.d/httpd,添加以下注释信息:
            # chkconfig: 345 85 15
            # description: Activates/Deactivates Apache Web Server
            第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
            保存后执行:chkconfig --add httpd,成功添加。
            在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。 
 
        3、运行chkconfig --list httpd 这时已经可以看到httpd服务了。此时就可以使用service httpd命令了。
                service httpd start
                service httpd restart
                service httpd stop
                service httpd status
 

1.3 常用配置项
  全局变量Global Environment

字段名默认值说明
ServerRoot> ServerRoot指令设置了服务器所在的 目录。一般来说它将包含conf/和logs/子目录。使用DEB包安装的系统, 此项的默认值为 "/etc/apache2" 也就是说仅仅包括apache2的配置文件.必须注意, 该目录是受保护的, 不允许非root用户对其进行修改.
PidFile/var/run/apache.pid指定记录httpd配置文件守护进程的进程号的文件。由于httpd配置文件能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程。对这个进程发送 信号将影响所有的httpd进程。PidFile定义的文件中就记录httpd 父进程的进程号。
DocumentRoot/var/www/html该参数指定Apache服务器存放网页的路径,默认所有要求提供HTTP服务的连接,都以这个目录为主目录。在每个Apache服务器存取的目录中,可以针对每个目录及子目录来设置允许及禁止客户端访问的服务。以下为Apache的默认值。
MaxClients150;该参数限制Apache所能提供服务的最高数值,即同一时间连接的数目不能超过这个数值。一旦连接数目达到这个限制,Apache服务器则不再为别的连接提供服务,以免系统性能大幅度下降。
Port80该参数用来指定Apache服务器的监听端口。一般来说,标准的HTTP服务默认端口号是80,一般不要更改这个数值。
KeepAliveon目前多数的浏览器都请求服务器保持持续连接,这种功能就称为“KeepAlive”,它是HTTP1.1中的标准规格,一般是用来强化服务器的性能。在使用保持连接功能时,设置客户一次请求连接能影响文件的最大上限,建议把默认值设为ON,以便提高访问 性能。
MaxKeepAliveRequests100当使用保持连接(persistent connection)功能时,可以使用本参数决定每次连接所能发出的要求数目的上限。如果此数值为0,则表示没有限制。建议尽可能使用较高的数值,以充分发挥Apache的高性能。
MaxRequestsPerChild10该参数限制每个子进程(child process)在结束前所能处理的请求数目,一旦达到该数目,这个子进程就会被中止,以避免长时间占据Apache(或者Apache服务器所采用的函数库),防止造成内存或者其他系统资源的超负荷。
MaxSpareServers/MinSpareServers20/5提供Web服务的HTTP守护进程,其数目会随连接的数目而变动。Apache服务器采用动态调整的方法,维持足够的HTTP守护进程数目,以处理目前的负载,也就是同时保持一定的空闲HTTP守护进程来等候新的连接请求。
DirectoryIndexinde.html在此命令后添加其他的默认主页文件名,例如可以添加index.htm等。当然这只是Apache的一些基本设置项,大家可以根据自己的实际情况加以灵活的修改,以充分发挥Apache的潜能。如果修改配置文件之后让其立即生效,可以重启Apache服务。
 
 

1.4 虚拟主机VirtualHost

        虚拟主机指的是在单一机器上运行多个网站 (例如 www.company1.com 和 www.company2.com) 。 虚拟主机可以“基于 IP”,即每个IP一个站点; 或者“基于名称”, 即每个IP多个站点。这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。
        可以让apache监听多个端口访问不同的路径。或者多个域名映射到同一个apache时做不同的访问分配。
        下面实例为监听8001端口,映射到一个本地的物理地址。

Java代码  





  • Listen 8001  
  • NameVirtualHost *:8001  
  • <VirtualHost *:8001>  
  •     ServerAdmin limingnihao@iteye.com  
  •     DocumentRoot "E:/_org.js/extjs-4.1.0/"  
  •     ServerName extjs.localhost  
  •     ErrorLog "logs/dummy-host2.localhost-error.log"  
  •     CustomLog "logs/dummy-host2.localhost-access.log" common  
  • </VirtualHost>  
  •   
  • <Directory "E:/_org.js/extjs-4.1.0/">  
  •     Options Indexes MultiViews  
  •     AllowOverride None  
  •     Order allow,deny  
  •     Allow from all  
  • </Directory>  



Listen 8001
NameVirtualHost *:8001
<VirtualHost *:8001>
ServerAdmin limingnihao@iteye.com
DocumentRoot "E:/_org.js/extjs-4.1.0/"
ServerName extjs.localhost
ErrorLog "logs/dummy-host2.localhost-error.log"
CustomLog "logs/dummy-host2.localhost-access.log" common
</VirtualHost>
<Directory "E:/_org.js/extjs-4.1.0/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-325582-1-1.html 上篇帖子: apache 访问慢 http://www.iteye.com/topic/254390 下篇帖子: 如何使用Apache作为前端负载均衡器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表