Apache是什么:

  Apache HTTP Server(简称Apache)是Apache软件基金会的一个高性能、功能强大、稳定可靠、又很灵活的开发源代码的web服务软件,对linux的支持相对好,有很多产品可以支持ssl技术,支持多个虚拟主机,到目前为止,市场占有率44.9%,世界上很多注明的网

站如百度、阿里、淘宝、亚马逊、雅虎等都有在使用apache服务,它的成功之处主要在于他的开源、有一支开发的开发队伍、支持跨平台的应用(几乎可以在所有的windows、linux、unix系统运行)以及它的可移植性等是当前互联网最流行的web服务端软件之一。

  Apache源于NCSA httpd服务,经过多次修改,成为世界上最流行的web服务器软件之一,Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修复原来的缺陷,才成为我们今天使用的安全稳定的web服务器。

注:以上web serve排行信息来源于https://w3techs.com/technologies/overview/web_server/all

Apache的特点及应用场合:

优点:

  • 功能强大
  • 配置简单
  • 速度快
  • 应用广泛
  • 性能稳定可靠
  • 可做代理服务器或负载均衡来使用

应用场合:

  • 使用apache运行静态html网页、图片(处理静态小文件能力不及nginx)
  • 使用apache结合php引擎运行php、perl、Python等程序,LAMP被称之为经典组合。
  • 使用apache结合tomcat/resin运行jsp,java等程序,成为中小型企业的首先。
  • 使用apache做代理、负载均衡rewrite规则过滤等等。

提示:

  进年来,网上比较流行的nginx server,对于提供纯静态小文件HTML页、图片等服务,Apache确实要不nginx逊色一些,但在结合PHP引擎提供php服务及其它很多方面并不比nginx差,而apache的稳定性更好,这也是为什么Apache服务排名仍然第一的原因之一。

下面我们来安装Apache服务:

环境→系统:centos 6.5  软件:httpd-2.2.27.tar.gz

  1. [root@bqh- tools]# wget http://archive.apache.org/dist/httpd/httpd-2.2.27.tar.gz
  2. [root@bqh- tools]# ll
  3. 总用量
  4. -rw-r--r-- root root 7 : httpd-2.2..tar.gz
  5. [root@bqh- tools]# tar xf httpd-2.2..tar.gz
  6. [root@bqh- tools]# ll
  7. 总用量
  8. drwxr-xr-x nginx 3 httpd-2.2.
  9. -rw-r--r-- root root 7 : httpd-2.2..tar.gz
  10. [root@bqh- tools]# cd httpd-2.2.
  11. [root@bqh- httpd-2.2.]# ./configure \
    --prefix=/application/apache2.2.27
    --enable-deflate \
    --enable-expires \
    --enable-headers \
    --enable-modules=most \
    --enable-so \
    --with-mpm=worker \
    --enable-rewrite

参数解释:

--prefix=/application/apache2.2.27     安装路径,默认路径为/usr/local/apache2
--enable-deflate      提供对内容的压缩传输编码支持,一般html,js,css等内容的站点,用此参数功能会大大提高传输速度,提升访问者访问体验,调优选项之一
--enable-expires     激活允许通过配置文件控制http的"Expires:"和"Cache-Control:"头内容,即对网站图片、js、css等内容,提供在客户端浏览器缓存的设置,调优选项之一
--enable-headers    提供允许对http请求头的控制
--enable-modules=most    可以将一些不常用的,不在缺省常用模块中的模块编译进来
--enable-so   激活apache服务的DSO(全称Dynamic Shared object,动态共享对象)支持,即在以后可以以DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译
--with-mpm=worker   选择apache mpm的模式为worker模式,因worker模式原理是更多的使用线程来处理请求,所有可以处理更多的并发请求,而系统资源的开销小于基于进程的MPM prefork。如果不指定此参数,默认的模式是prefork的进程模式,虽然消耗资源,但是更稳定,因此,选择prefork进程模式而不选择worker模式也是可以考虑的,调优选项之一
--enable-rewrite   提供基于URL规则的重写功能,即根据已知URL地址,转换其他想要的URL地址,伪静态模块。调优必选项

  1. [root@bqh-119 httpd-2.2.27]# make
    ...
  2. ......此处省略
  3. [root@bqh- httpd-2.2.]# echo $?
  4.  
  5. [root@bqh- httpd-2.2.]# make install
  6. Making install in srclib
  7. make[]: Entering directory `/root/tools/httpd-2.2./srclib'
  8. Making install in apr
  9. make[]: Entering directory `/root/tools/httpd-2.2./srclib/apr'
  10. make[]: Entering directory `/root/tools/httpd-2.2./srclib/apr'
  11. make[]: Nothing to be done for `local-all'.
  12. make[]: Leaving directory `/root/tools/httpd-2.2./srclib/apr'
  13. /root/tools/httpd-2.2./srclib/apr/build/mkdir.sh /application/apache2.2.27/lib /application/apache2.2.27/bin /application/a
  14. pache2.2.27/build \
  15. ...
  16. ......此处省略
  17. mkdir /application/apache2.2.27/logs
  18. Installing CGIs
  19. mkdir /application/apache2.2.27/cgi-bin
  20. Installing header files
  21. Installing build system files
  22. Installing man pages and online manual
  23. mkdir /application/apache2.2.27/man
  24. mkdir /application/apache2.2.27/man/man1
  25. mkdir /application/apache2.2.27/man/man8
  26. mkdir /application/apache2.2.27/manual
  27. make[]: Leaving directory `/root/tools/httpd-2.2.'
  28. [root@bqh- httpd-2.2.]# echo $?

做个软连接(快捷方式)便于区分当前使用版本、安全考虑隐藏版本、方便以后升级等:

  1. [root@bqh- httpd-2.2.]# ln -s /application/apache2.2.27/ /application/apache
  2. [root@bqh- httpd-2.2.]# ll /application/
  3. 总用量
  4. lrwxrwxrwx root root 7 : apache -> /application/apache2.2.27/
  5. drwxr-xr-x root root 7 : apache2.2.27

到此,Apache服务安装已完成。

查看编译的生效模块:/application/apache/bin/apachectl -l

启动前检查配置文件语法:/application/apache/bin/apachectl -t

启动Apache服务:/application/apache/bin/apachectl start

重启Apache服务:/application/apache/bin/apachectl graceful

查看服务状态:lsof -i:80 或 ps -ef|grep httpd

  1. [root@bqh- httpd-2.2.]# /application/apache/bin/apachectl -t
  2. httpd: apr_sockaddr_info_get() failed for bqh-
  3. httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
  4. Syntax OK
  5. [root@bqh- httpd-2.2.]# /application/apache/bin/apachectl start
  6. httpd: apr_sockaddr_info_get() failed for bqh-
  7. httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
  8. [root@bqh- httpd-2.2.]# lsof -i:
  9. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  10. httpd root 4u IPv6 0t0 TCP *:http (LISTEN)
  11. httpd daemon 4u IPv6 0t0 TCP *:http (LISTEN)
  12. httpd daemon 4u IPv6 0t0 TCP *:http (LISTEN)
  13. httpd daemon 4u IPv6 0t0 TCP *:http (LISTEN)
  14. [root@bqh- httpd-2.2.]# ps -ef|grep httpd
  15. root : ? :: /application/apache2.2.27/bin/httpd -k start
  16. daemon : ? :: /application/apache2.2.27/bin/httpd -k start
  17. daemon : ? :: /application/apache2.2.27/bin/httpd -k start
  18. daemon : ? :: /application/apache2.2.27/bin/httpd -k start
  19. daemon : ? :: /application/apache2.2.27/bin/httpd -k start
  20. root : pts/ :: grep httpd

 我们用curl 测试一下:(192.168.0.119为安装apache的服务器的ip地址)

  1. [root@bqh- httpd-2.2.]# curl 192.168.0.119
  2. <html><body><h1>It works!</h1></body></html>

浏览器测试一下:

ok,到此apache服务安装成功!

注:如果未显示It works的页面,请查看是否关闭了iptables防火墙和selinux。

关闭防火墙:/etc/init.d/iptables stop

允许通过防火墙:iptables -I INPUT -p tcp --dprot 80 -j ACCEPT

临时关闭selinux,可执行:

  setenforce 0  // 设置selinux状态 1启用,0警告、不启用。

  getenforce   //检查selinux状态是否生效

永久关闭selinux功能:

cat /etc/selinux/config

cp /etc/selinux/config /etc/selinux/config.root

    sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

如果要部署网站服务,需要把开发好的程序全部放置:/application/apache/htdocs

  1. [root@bqh- ~]# cd /application/apache/htdocs/
  2. [root@bqh- htdocs]# vim index.html
  3. [root@bqh- htdocs]# cat index.html
  4. <html>
  5. <head><title>bqh blog</title></head>
  6. <bldy>
  7. Hello, welcome to bqh's blog. This is my blog address.
  8. <a href="https://www.cnblogs.com/su-root/#top">https://www.cnblogs.com/su-root/#top</a>
  9. <br></br>
  10. Email:@qq.com
  11. </body>
  12. </html>

-------------------------------------------------

优化httpd.conf配置文件,避免暴露目录结构:

  1. [root@bqh- conf]# sed -n '132,160p' httpd.conf
  2. <Directory "/application/apache2.2.27/htdocs">
  3. #
  4. # Possible values for the Options directive are "None", "All",
  5. # or any combination of:
  6. # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
  7. #
  8. # Note that "MultiViews" must be named *explicitly* --- "Options All"
  9. # doesn't give it to you.
  10. #
  11. # The Options directive is both complicated and important. Please see
  12. # http://httpd.apache.org/docs/2.2/mod/core.html#options
  13. # for more information.
  14. #
  15. Options Indexes FollowSymLinks #如果没有首页的情况下会展示目录结构、 建议把Indexes删除 或改为-Indexes 、如果把目录展示禁用后、没有首页的情况下会报错403
  16.  
  17. #
  18. # AllowOverride controls what directives may be placed in .htaccess files.
  19. # It can be "All", "None", or any combination of the keywords:
  20. # Options FileInfo AuthConfig Limit
  21. #
  22. AllowOverride None
  23.  
  24. #
  25. # Controls who can get stuff from this server.
  26. #
  27. Order allow,deny
  28. Allow from all
  29.  
  30. </Directory>
  31. [root@bqh- conf]#

Apache服务目录结构简要说明:

bin启动文件目录说明:

conf配置文件目录说明:

站点存放目录、日志存放目录、模块目录说明:

Centos 6.5 Apache服务安装的更多相关文章

  1. CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户

    CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...

  2. 超详细 值得收藏 linux CentOS 7 配置Apache服务【转发+新增】

    一.Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性(尽管不断有 ...

  3. Apache服务安装及一些基本操作

    注意:安装apache服务之前记得搭建yum仓库 1.安装apache服务,输入命令“yum install httpd” 安装成功后,会这样显示 2.需要对Apache服务进行启动,输入命令“sys ...

  4. python CGI编程---Apache服务安装(2)

    一.下载Apache 下载地址:https://www.apachehaus.com/cgi-bin/download.plx 我这里下载第一个,我电脑是window的64位. 下载完成后,解压到 我 ...

  5. CentOS 7下Samba服务安装与配置详解

    1. Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共 ...

  6. 阿里云Centos 7 FTP(vsftp)服务安装及配置

    #检查vsftpd是否安装 rpm -qa | grep vsftpd #检查vsftpd版本并安装 yum list vsftpd yum install vsftpd #设置开机启动 system ...

  7. 【Apache】Apache服务的安装(一)

    Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行 ...

  8. (转)CentOS 7.6 上编译安装httpd 2.4.38

    原文:https://www.s4lm0x.com/archives/40.html https://www.cnblogs.com/sunshine-H/p/8110608.html----超详细 ...

  9. [转载]Ubuntu下apache的安装与配置

    原文地址:https://blog.csdn.net/gatieme/article/details/53025505 1 安装apache 在 Ubuntu 上安装 Apache,有两种方式 使用源 ...

随机推荐

  1. Spring cloud微服务安全实战-3-4 API安全机制之认证(1)

    本节开始讲认证相关的东西.注意事项,出现问题的对应的解决方案. 先写用户注册的服务,注册一些用户信息进去.注册也是我们安全体系的一部分 注册 UserController里面的create方法 先修改 ...

  2. 转 Zabbix 3.2.6通过SNMP和iDRAC监控DELL服务器

    https://www.cnblogs.com/saneri/p/7772641.html

  3. centos 7 修改计算机名

      [root@centos7 ~]$ hostnamectl set-hostname test.xyz.com # 使用这个命令会立即生效且重启也生效 [root@centos7 ~]$ host ...

  4. IE浏览器提示打印控件未安装的一些原因

    打印控件未安装!点击这里执行安装,安装后请刷新页面或重新进入.--该提示是写在LodopFuncs.js里的.相关本博客其他博文:提示“Web打印服务CLodop未安装启动”的各种原因和解决方法.C- ...

  5. css样式圆角和一定的透明度

    css样式里可以用border-radius把div或图片变成带有一定圆角的,如果是div本身是正方形,设置圆角度是百分之五十,就是圆形. border-radius:值可以是具体的px数值,也可以是 ...

  6. 【Leetcode_easy】1160. Find Words That Can Be Formed by Characters

    problem 1160. Find Words That Can Be Formed by Characters solution class Solution { public: int coun ...

  7. Java基础教程:多线程基础(5)——倒计时器(CountDownLatch)

    Java基础教程:多线程基础(5)——倒计时器(CountDownLatch) 引入倒计时器 在多线程协作完成业务功能时,有时候需要等待其他多个线程完成任务之后,主线程才能继续往下执行业务功能,在这种 ...

  8. 【嵌入式硬件Esp32】(1)例程Hello World Example 注释

    /* Hello World Example This example code is in the Public Domain (or CC0 licensed, at your option.) ...

  9. 2019年Java面试题基础系列228道(4)

    1.Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组,将会受到 vo ...

  10. PDO 查询mysql返回字段int变为String型解决方法

    PDO 查询mysql返回字段int变为String型解决方法使用PDO查询mysql数据库时,执行prepare,execute后,返回的字段数据全都变为字符型. 例如id在数据库中是Int的,查询 ...