zoukankan      html  css  js  c++  java
  • Centos 6.5 Apache服务安装

     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

    [root@bqh-119 tools]# wget http://archive.apache.org/dist/httpd/httpd-2.2.27.tar.gz
    [root@bqh-119 tools]# ll
    总用量 7344
    -rw-r--r-- 1 root root 7519677 7月  13 22:39 httpd-2.2.27.tar.gz
    [root@bqh-119 tools]# tar xf httpd-2.2.27.tar.gz 
    [root@bqh-119 tools]# ll
    总用量 7348
    drwxr-xr-x 11 nginx  500    4096 3月  14 2014 httpd-2.2.27
    -rw-r--r--  1 root  root 7519677 7月  13 22:39 httpd-2.2.27.tar.gz
    [root@bqh-119 tools]# cd httpd-2.2.27
    [root@bqh-119 httpd-2.2.27]# ./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地址,伪静态模块。调优必选项 

    [root@bqh-119 httpd-2.2.27]# make
    ... ......此处省略 [root@bqh
    -119 httpd-2.2.27]# echo $? 0 [root@bqh-119 httpd-2.2.27]# make install Making install in srclib make[1]: Entering directory `/root/tools/httpd-2.2.27/srclib' Making install in apr make[2]: Entering directory `/root/tools/httpd-2.2.27/srclib/apr' make[3]: Entering directory `/root/tools/httpd-2.2.27/srclib/apr' make[3]: Nothing to be done for `local-all'. make[3]: Leaving directory `/root/tools/httpd-2.2.27/srclib/apr' /root/tools/httpd-2.2.27/srclib/apr/build/mkdir.sh /application/apache2.2.27/lib /application/apache2.2.27/bin /application/a pache2.2.27/build ... ......此处省略 mkdir /application/apache2.2.27/logs Installing CGIs mkdir /application/apache2.2.27/cgi-bin Installing header files Installing build system files Installing man pages and online manual mkdir /application/apache2.2.27/man mkdir /application/apache2.2.27/man/man1 mkdir /application/apache2.2.27/man/man8 mkdir /application/apache2.2.27/manual make[1]: Leaving directory `/root/tools/httpd-2.2.27' [root@bqh-119 httpd-2.2.27]# echo $? 0

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

    [root@bqh-119 httpd-2.2.27]# ln -s /application/apache2.2.27/ /application/apache
    [root@bqh-119 httpd-2.2.27]# ll /application/
    总用量 8
    lrwxrwxrwx  1 root root   26 7月  13 23:36 apache -> /application/apache2.2.27/
    drwxr-xr-x 15 root root 4096 7月  13 23:29 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

    [root@bqh-119 httpd-2.2.27]# /application/apache/bin/apachectl -t
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    Syntax OK
    [root@bqh-119 httpd-2.2.27]# /application/apache/bin/apachectl start
    httpd: apr_sockaddr_info_get() failed for bqh-119
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    [root@bqh-119 httpd-2.2.27]# lsof -i:80
    COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    httpd   58405   root    4u  IPv6  54509      0t0  TCP *:http (LISTEN)
    httpd   58407 daemon    4u  IPv6  54509      0t0  TCP *:http (LISTEN)
    httpd   58408 daemon    4u  IPv6  54509      0t0  TCP *:http (LISTEN)
    httpd   58409 daemon    4u  IPv6  54509      0t0  TCP *:http (LISTEN)
    [root@bqh-119 httpd-2.2.27]# ps -ef|grep httpd
    root      58405      1  0 23:40 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
    daemon    58406  58405  0 23:40 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
    daemon    58407  58405  0 23:40 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
    daemon    58408  58405  0 23:40 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
    daemon    58409  58405  0 23:40 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
    root      58493   1473  0 23:41 pts/0    00:00:00 grep httpd

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

    [root@bqh-119 httpd-2.2.27]# curl 192.168.0.119
    <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

    [root@bqh-119 ~]# cd /application/apache/htdocs/
    [root@bqh-119 htdocs]# vim index.html 
    [root@bqh-119 htdocs]# cat index.html 
    <html>
    <head><title>bqh blog</title></head>
    <bldy> 
    Hello, welcome to bqh's blog. This is my blog address.
    <a href="https://www.cnblogs.com/su-root/#top">https://www.cnblogs.com/su-root/#top</a>
    <br></br>
    Email:1147076062@qq.com
    </body>
    </html>

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

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

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

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

    bin启动文件目录说明:

    conf配置文件目录说明:

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

  • 相关阅读:
    FT View SE联合Studio 5000仿真
    安装AB编程软件提示安装失败时如何处理
    如何识别Studio 5000程序开发版本号
    Studio 5000编程:一种累计时间的编程方法
    CPU或以太网模块重启DHCP请求
    Studio 5000编程:如何判断AB PLC系统中的硬件设备是否在正常工作
    使用以太网通信方式刷新AB PLC固件
    初探Node-red结合阿里云数据库,定时显示数据
    SQL SERVER 按时间计算每天某值的平均值
    微信小程序对接显示阿里云数据库数据
  • 原文地址:https://www.cnblogs.com/su-root/p/11182549.html
Copyright © 2011-2022 走看看