• CentOS 6.5安装Apache


    1、Apache的特点

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

    2、Apache的应用场合

    使用Apache运行静态HTML网页、图片(处理静态小文件能力不及Nginx)。
    使用Apache结合PHP引擎运行PHP、Perl、Python等程序
    使用Apache结合Tomcat/Resion运行JSP,JAVA等程序
    使用Apache作代理、负载均衡、rewrite规则过滤等等。

    安装Apache

    1、确认主机名、检查是否已经存在httpd、如果已经存在先卸载(使用rpm -e  --nodeps)

    [root@httpd /]# hostname httpd
    [root@httpd /]# rpm -qa httpd
    rpm -e --nodeps 加 rpm -qa httpd 查看到的包名
    rpm命令-qa参数
    -q 查询的意思
    -a 所有软件包
    -e 移除的意思
    --nodeps 不做软件间的依赖检查
    更过参数使用man rpm 或 rpm --help查看

    2、下载httpd软件包

    [root@localhost /]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.31.tar.gz
    --2016-08-26 20:07:22--  http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.31.tar.gz
    Resolving mirror.bit.edu.cn... 202.204.80.77, 2001:da8:204:2001:250:56ff:fea1:22
    Connecting to mirror.bit.edu.cn|202.204.80.77|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 7583841 (7.2M) [application/octet-stream]
    Saving to: “httpd-2.2.31.tar.gz”
    
    100%[==================================================>] 7,583,841   1.26M/s   in 5.0s    
    
    2016-08-26 20:07:27 (1.46 MB/s) - “httpd-2.2.31.tar.gz” saved [7583841/7583841]

    [root@localhost /]# ll httpd-2.2.31.tar.gz
    -rw-r--r--. 1 root root 7583841 Aug 26 20:10 httpd-2.2.31.tar.gz

    3、解压

    [root@localhost httpd-2.2.31]# tar zxvf httpd-2.2.31.tar.gz 
    [root@localhost /]# cd httpd-2.2.31
    [root@localhost httpd-2.2.31]# ls
    ABOUT_APACHE  CHANGES        httpd.dsp       libhttpd.dep  NOTICE            server
    acinclude.m4  config.layout  httpd.mak       libhttpd.dsp  NWGNUmakefile     srclib
    Apache.dsw    configure      httpd.spec      libhttpd.mak  os                support
    build         configure.in   include         LICENSE       README            test
    BuildAll.dsp  docs           INSTALL         Makefile.in   README.platforms  VERSIONING
    BuildBin.dsp  emacs-style    InstallBin.dsp  Makefile.win  README-win32.txt
    buildconf     httpd.dep      LAYOUT          modules       ROADMAP
    [root@localhost httpd-2.2.31]# ls INSTALL README    #遇到不熟悉的软件是可参考这两个文件
    INSTALL  README
    [root@localhost httpd-2.2.31]# less INSTALL 
    
    
    
      APACHE INSTALLATION OVERVIEW
    
      Quick Start - Unix
      ------------------
    
      For complete installation documentation, see [ht]docs/manual/install.html or
      http://httpd.apache.org/docs/2.2/install.html
    
         $ ./configure --prefix=PREFIX
         $ make
         $ make install
         $ PREFIX/bin/apachectl start
    
         NOTES: * Replace PREFIX with the filesystem path under which 
                  Apache should be installed.  A typical installation
                  might use "/usr/local/apache2" for PREFIX (without the
                  quotes).
    
                * If you are a developer who will be linking your code with
                  Apache or using a debugger to step through server code,
                  ./configure's --with-included-apr option may be advantageous,
                  as it removes the possibility of version or compile-option
                  mismatches with APR and APR-util code.  (Many OSes now
                  include their own version of APR and APR-util.)
    
                * If you are a developer building Apache directly from
                  Subversion, you will need to run ./buildconf before running
                  configure. This script bootstraps the build environment and
                  requires Python as well as GNU autoconf and libtool. If you
                  build Apache from a release tarball, you don't have to run
                  buildconf.
    [root@localhost httpd-2.2.31]# less README
    
    
    
    
                              Apache HTTP Server
    
      What is it?
      -----------
    
      The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant
      web server.  Originally designed as a replacement for the NCSA HTTP
      Server, it has grown to be the most popular web server on the
      Internet.  As a project of the Apache Software Foundation, the
      developers aim to collaboratively develop and maintain a robust,
      commercial-grade, standards-based server with freely available
      source code.
    
      The Latest Version
      ------------------
    
      Details of the latest version can be found on the Apache HTTP
      server project page under <http://httpd.apache.org/>.
    
      Documentation
      -------------

    4、编译、安装

    [root@localhost httpd-2.2.31]# yum -y install gcc
    [root@localhost httpd-2.2.31]# ./configure --prefix=/usr/local/httpd-2.2.31 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite

    checking
    for zlib location... not found checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
    解决
    缺少
    zlib-devel
    [root@localhost httpd-2.2.31]# yum -y install zlib zlib-devel
    重新
    [root@localhost httpd
    -2.2.31]# ./configure --prefix=/usr/local/httpd-2.2.31 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite

    [root@localhost httpd-2.2.31]# make
    [root@localhost httpd-2.2.31]# make install
    [root@localhost httpd-2.2.31]# echo $?
    0
    
    

    5、优化路径

    [root@localhost httpd-2.2.31]# ln -s /usr/local/httpd-2.2.31/bin/* /usr/local/bin/

    6、检查

    [root@localhost httpd-2.2.31]# /usr/local/bin/apachectl -t
    httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
    Syntax OK

    [root@localhost httpd-2.2.31]# cd /usr/local/httpd-2.2.31/conf/
    [root@localhost conf]# pwd
    /usr/local/httpd-2.2.31/conf

    [root@localhost conf]# vim httpd.conf

    ServerName www.httpd.com:80

    [root@httpd conf]# /usr/local/bin/apachectl -t
    Syntax OK

    7、启动服务

    [root@localhost conf]# /usr/local/bin/apachectl start
    [root@localhost conf]# lsof -i :80
    COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    httpd   14904   root    4u  IPv6  80734      0t0  TCP *:http (LISTEN)
    httpd   14906 daemon    4u  IPv6  80734      0t0  TCP *:http (LISTEN)
    httpd   14907 daemon    4u  IPv6  80734      0t0  TCP *:http (LISTEN)
    httpd   14908 daemon    4u  IPv6  80734      0t0  TCP *:http (LISTEN)
    [root@localhost conf]# ps -ef | grep httpd
    root     14904     1  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14905 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14906 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14907 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14908 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    root     15006  1098  0 21:01 pts/0    00:00:00 grep httpd


    [root@localhost conf]# cp /usr/local/httpd-2.2.31/bin/apachectl /etc/init.d/httpd
    [root@localhost conf]# vim /etc/init.d/httpd

    #chkconfig: 35 85 15

    [root@localhost conf]# chkconfig --add httpd

    8、测试

    检查防火墙是否关闭

    [root@localhost httpd-2.2.31]# /etc/init.d/iptables stop
    iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Unloading modules:                               [  OK  ]

    打开浏览器访问http://192.168.161.131/

    如果访问不了It works 页面、排查

    1、iptables防火墙和selinux是否关闭(在生产环境中允许80端口访问,而不是关闭防火墙)

    [root@localhost httpd-2.2.31]# /etc/init.d/iptables stop
    root@localhost httpd-2.2.31]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    关闭selinux

    [root@localhost httpd-2.2.31]# setenforce 0  #临时关闭
    [root@localhost httpd-2.2.31]# cat /etc/selinux/config | grep SELINUX=enforcing SELINUX=enforcing [root@localhost httpd-2.2.31]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config [root@localhost httpd-2.2.31]# cat /etc/selinux/config | grep SELINUX= # SELINUX= can take one of these three values: SELINUX=disabled

    2、检查httpd端口80

    [root@localhost httpd-2.2.31]# netstat -nlt | grep 80
    tcp        0      0 :::80                       :::*                        LISTEN      

    3、查看是否http进程

    [root@localhost httpd-2.2.31]# ps -ef | grep http
    root     14904     1  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14905 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14906 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14907 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   14908 14904  0 21:00 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    daemon   15071 14904  0 21:03 ?        00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start
    root     15147  1098  0 21:28 pts/0    00:00:00 grep http

    4、在服务器上wget http://192.168.161.131

    [root@localhost httpd-2.2.31]# wget http://192.168.161.131
    --2016-08-26 21:28:56--  http://192.168.161.131/
    Connecting to 192.168.161.131:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 44 [text/html]
    Saving to: “index.html”
    
    100%[======================================>] 44          --.-K/s   in 0s      
    
    2016-08-26 21:28:56 (7.26 MB/s) - “index.html” saved [44/44]
    
    [root@localhost httpd-2.2.31]# curl 192.168.161.131

    命令

    [root@localhost httpd-2.2.31]# /usr/local/bin/apachectl
    Usage: /usr/local/httpd-2.2.31/bin/httpd [-D name] [-d directory] [-f file]
                                             [-C "directive"] [-c "directive"]
                                             [-k start|restart|graceful|graceful-stop|stop]
                                             [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S]
    Options:
      -D name            : define a name for use in <IfDefine name> directives
      -d directory       : specify an alternate initial ServerRoot
      -f file            : specify an alternate ServerConfigFile
      -C "directive"     : process directive before reading config files
      -c "directive"     : process directive after reading config files
      -e level           : show startup errors of level (see LogLevel)
      -E file            : log startup errors to file
      -v                 : show version number
      -V                 : show compile settings
      -h                 : list available command line options (this page)
      -l                 : list compiled in modules
      -L                 : list available configuration directives
      -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
      -S                 : a synonym for -t -D DUMP_VHOSTS
      -t -D DUMP_MODULES : show all loaded modules 
      -M                 : a synonym for -t -D DUMP_MODULES
      -t                 : run syntax check for config files
      -T                 : start without DocumentRoot(s) check

     apache目录下的命令和文件介绍

    [root@localhost httpd-2.2.31]# pwd
    /usr/local/httpd-2.2.31
    [root@localhost httpd-2.2.31]# ls
    bin    cgi-bin  error   icons    lib   man     modules
    build  conf     htdocs  include  logs  manual
    [root@localhost httpd-2.2.31]# tree bin
    bin
    ├── ab    #apache HTTP服务器性能测试工具、同类软件jmeter、loadrunner、webbench等
    ├── apachectl    #apache启动命令、apachectl是一个脚本
    ├── apr-1-config
    ├── apu-1-config
    ├── apxs      #apxs是一个apache HTTP服务器编译和安装扩展模块的工具、在进行DSO方式编译模块时会用到
    ├── checkgid
    ├── dbmmanage
    ├── envvars
    ├── envvars-std
    ├── htcacheclean   #清理磁盘缓冲区的命令、需要编译时指定相关参数才可使用。
    ├── htdbm
    ├── htdigest
    ├── htpasswd    #建立和更新基本认证文件
    ├── httpd    #httpd为apache的控制程序、apachectl执行时会调用httpd。
    ├── httxt2dbm
    ├── logresolve
    └── rotatelogs    #apache自带的日志轮询命令
    
    0 directories, 17 files

    [root@localhost httpd-2.2.31]# ll conf/
    total 92
    drwxr-xr-x. 2 root root 4096 Aug 26 20:48 extra  #额外的apache配置文件目录、httpd-vhosts.conf默认就在此目录
    -rw-r--r--. 1 root root 13646 Aug 26 20:48 httpd.conf  #apache的主配置文件
    -rw-r--r--. 1 root root 12958 Aug 26 20:48 magic
    -rw-r--r--. 1 root root 53011 Aug 26 20:48 mime.types
    drwxr-xr-x. 3 root root 4096 Aug 26 20:48 original

    [root@localhost httpd-2.2.31]# ll htdocs/   #编译安装时apache的默认站点目录
    total 4
    -rw-r--r--. 1 1000 1000 44 Nov 21 2004 index.html   #默认首页文件

    [root@localhost httpd-2.2.31]# ll logs/  #apache默认日志文件路径
    total 12
    -rw-r--r--. 1 root root 454 Aug 29 16:09 access_log  #apache默认访问日志
    srwx------ 1 daemon root 0 Aug 29 16:09 cgisock.1216
    -rw-r--r--. 1 root root 868 Aug 29 16:09 error_log  #apache错误日志文件
    -rw-r--r-- 1 root root 5 Aug 29 16:09 httpd.pid  #httpd的pid文件、http进程启动后、会把所有进程的ID写到此文件。

    [root@localhost httpd-2.2.31]# ll modules/  #apache模块目录
    total 12
    -rw-r--r--. 1 root root 9194 Aug 26 20:47 httpd.exp

    apache优化

    [root@localhost httpd-2.2.31]# cd conf/
    [root@localhost conf]# vim httpd.conf
    <Directory "/usr/local/httpd-2.2.31/htdocs">
    Options Indexes FollowSymLinks      #如果没有首页的情况下会展示目录结构、 建议把Indexes删除 或改为-Indexes 、如果把目录展示禁用后、没有首页的情况下会报错403
  • 相关阅读:
    而字歌
    排列组合的学习,基础入门,选修2-3
    金句集(目前9句)
    简析几何叉乘与安培力的内在逻辑
    浅谈参变分离的妙用
    日语
    Tarjan-SCC-NOIP2015message
    WebAPI身份验证
    简单记录在Visual Studio 2013中创建ASP.NET Web API 2
    从两个平方算法到分治算法-java
  • 原文地址:https://www.cnblogs.com/hwlong/p/5874197.html
Copyright © 2020-2023  润新知