`

apache安装

 
阅读更多
文章分类:操作系统
1.下载httpd-2.2.15.tar.gz


wget  http://mirror.bjtu.edu.cn/apache/httpd/httpd-2.2.17.tar.gz

[root@test-AS4 ~]# mkdir -P /usr/local/src/apache/    #创建源包存放的目录

[root@test-AS4 ~]# cd /usr/local/src/apache/           #把httpd-2.2.15.tar.gz放入此目录下

[root@test-AS4 apache]# tar zxvf httpd-2.2.15.tar.gz       #解压文件会生成httpd-2.2.15目录

[root@test-AS4 apache]# ll
total 6464
drwxr-xr-x  11 angel angel    4096 Mar 10 07:42 httpd-2.2.15
-rw-r--r--   1 root  root  6593633 Mar 10  2010 httpd-2.2.15.tar.gz

[root@test-AS4 httpd-2.2.15]# cd httpd-2.2.15


[root@test-AS4 httpd-2.2.15]# ./configure --prefix=/usr/local/apache-2.2.15  --enable-so --enable-mods-shared=most --with-mpm=worker


如果发现gcc没有装,请先安装GCC  yum -y install gcc



[root@test-AS4 httpd-2.2.15]# make   #执行make前执行   apt-get build-dep fcitx

[root@test-AS4 httpd-2.2.15]# make install

#  --prefix=<Install_Path> 指明编译后的二进制文件安装到<Install_Path>目录,用实际安装路径替换<Install_Path>,如--prefix=/usr/local/apache-2.2.15 ,如果省略此配置参数,默认安装到/usr/local/apache2目录。

#  --enable-so 指明编译动态加载模块(DSO)支持到httpd二进制文件,此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。有了DSO支持,升级和增加模块时只需编译相关的模块即可,不必重新编译整个系统。最新版本的Apache缺省编译此模块到httpd二进制文件,如果你在使用早期版本的apache并且需要DSO支持,可能要明确指出此选项。

#  --enable-mods-shared=<MODULE-LIST> 明确指明要以DSO方式编译的模块,<MODULE-LIST>为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分模块,如--enable-mods-share="rewrite deflate",--enable-mods-share=most,效果等同于多个--enable-<FEATURE>=share
# --with-mpm=<MPM> 先择Apache多路处理模块,<MPM>={beos|event|worker|prefork|mpmt_os2},prefork为Unix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。worker为支持混合的多线程多进程的多路处理模块,由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM,同时,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。如果你的系统是基于线程安全的,那么笔者建议使用worker替代prefork,它将使得你的系统得到实际的性能改善。



2. 设置开机自启动服务控制脚本
  Apache安装后可通过其安装路径的bin目录下的apachectl脚本控制服务的启动和停止。本例中apache安装在/usr/local/apache-2.2.15,服务控制脚本为:
    /usr/local/apache-2.2.15/bin/apachectl
   执行下面的命令启动Apache服务:
    /usr/local/apache-2.2.15/bin/apachectl start
   执行下面的命令停止Apache服务:
    /usr/local/apache-2.2.15/bin/apachectl stop
  可以简单地把Apache启动命令加到/etc/rc.local文件,让Apache随系统启动而自动启动:
    echo "/usr/local/apache-2.2.15/bin/apachectl start"  >> /etc/rc.local



下面介绍如何把Apache加入到系统服务,用service命令来控制Apache的启动和停止。

## 这里请注意一下!如果Linux服务器上默认安装了httpd的话(用rpm -qa|grep httpd查看),

## 会有 /etc/init.d/httpd 这个脚本文件的,所以你也可以用以下方法直接生成这个文件来覆盖它

## 那么下次就可以用 service httpd start 来启动了

## 如果需要区分开来的话就使用下面的方式
  首先以apachectl脚本为模板生成Apache服务控制脚本:
    grep -v "#" /usr/local/apache-2.2.15/bin/apachectl  > /etc/init.d/apache
   用vi编辑Apache服务控制脚本/etc/init.d/apache:
    vi /etc/init.d/apache
   在文件最前面插入下面的行,使其支持chkconfig命令:
    #!/bin/sh
              # chkconfig: 2345 85 15
              # description: Apache is a World Wide Web server.
   保存后退出vi编辑器,执行下面的命令增加Apache服务控制脚本执行权限:
    chmod  +x  /etc/init.d/apache
   执行下面的命令将Apache服务加入到系统服务:
    chkconfig --add apache
   执行下面的命令检查Apache服务是否已经生效:
    chkconfig --list apache
              命令输出类似下面的结果:
              apache          0:off 1:off 2:on 3:on 4:on 5:on 6:off
       表明apache服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制Apache的启动和停止。
  启动Apache服务:
    service apache start
   停止Apache服务:
       service apache stop
   执行下面的命令关闭开机自启动:
    chkconfig apache off
   执行下面的命令改变开机自启动的运行级别为3、5:
    chkconfig --level 35 apache on



3. Apache的配置

源码包方式安装目录结构
  源码包方式安装时通常是在configure命令的--prefix选项指定的目录中建立如下的目录结构,特殊指定的目录除外:
         ./icons     #Apache图标文件目录
           ./modules   #动态加载模块目录
           ./lib       #库文件目录
           ./logs      #日志文件目录
           ./build     #
           ./conf      #主配置文件目录
           ./conf/extra     #扩展及模块配置文件目录
           ./error     #默认错误应答文件目录
           ./manual    #Apache文档目录
           ./include   #包含头文件目录
           ./htdocs    #默认WEB文档根目录
           ./cgi-bin   #默认cgi文件目录
           ./bin     #Apache二进制程序及服务程序目录
           ./man     #man帮助文件目录



4. 配置文件 http.conf

ServerRoot "/usr/local/apache-2.2.15"       ##设置服务器的基础目录,默认为Apache安装目录
Listen 80           ##设置服务器监听的IP和端口
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule ident_module modules/mod_ident.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule cgid_module modules/mod_cgid.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
<IfModule !mpm_netware_module>
User daemon     ##设置实际提供服务的子进程的用户。
Group daemon    ##设置提供服务的Apache子进程运行时的用户组。
</IfModule>
ServerAdmin you@example.com      ##设置在所有返回给客户端的错误信息中包含的管理员邮件地址。
ServerName 192.168.221.128       ##设置服务器用于辨识自己的主机名和端口号(用IP代替)。
DocumentRoot "/usr/local/apache-2.2.15/htdocs"     ##设置Web文档根目录。
<Directory />       ###<Directory>和</Directory>用于封装一组指令,使之仅对某个目录及其子目录生效。
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "/usr/local/apache-2.2.15/htdocs">   ##设置DocumentRoot指定目录的属性
    Options Indexes FollowSymLinks    ##建议拿掉Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<IfModule dir_module>    ##设置默认目录资源列表文件
    DirectoryIndex index_top.html entrance.html index.html index.php index.htm index.asp index.php3
</IfModule>
<FilesMatch "^\.ht">     ##拒绝对.ht开头文件的访问,以保护.htaccess文件
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
ErrorLog "logs/error_log"      ##指定错误日志文件
LogLevel warn        ##指定记录到错误日志的消息级别
<IfModule log_config_module>    ##定义访问日志的格式
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" common    ##指定访问日志及使用的格式
</IfModule>
<IfModule alias_module>    ##设定默认CGI脚本目录及别名
    ScriptAlias /cgi-bin/ "/usr/local/apache-2.2.15/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "/usr/local/apache-2.2.15/cgi-bin">    ##设定默认CGI脚本目录的属性
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
DefaultType text/plain    ##设定默认MIME内容类型
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

<IfModule mpm_worker_module>              ##编译参数 --with-mpm=worker时,使用worker.c模块
                ServerLimit         25    ##/usr/local/apache-2.2.15/bin/apachectl -l查看使用模块
                ThreadLimit        200
                StartServers         3
                MaxClients        2000
                MinSpareThreads     50
                MaxSpareThreads    200
                ThreadsPerChild    100
                MaxRequestsPerChild  1000
</IfModule>

Timeout 15
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /usr/local/apache-2.2.15/htdocs/irene
    ServerName www.irene.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /usr/local/apache-2.2.15/htdocs/angel
    ServerName www.angel.com
</VirtualHost>

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

4. 认证和授权配置

## 在httpd.conf配置文件中添加如下代码

<Directory "/usr/local/apache-2.2.15/htdocs/protect">
        AllowOverride None      ## 不使用.htaccess文件
        AuthType Basic          ## 指定使用基本认证方式
        AuthName "apache.passwd"    ## 指定认证领域名称
        AuthUserFile /usr/local/apache-2.2.15/htdocs/protect/apache.passwd  ## 认证口令存放位置
        require valid-user     ## 授权给认证口令文件中的所有用户
        #Order allow,deny
        #Allow from all
</Directory>

** 由于文本中 DocumentRoot "/usr/local/apache-2.2.15/htdocs" 已经指定了你的文档根目录

** 所以在这个目录下建立相关目录作为指定的保护文档位置

** 也可以使用Alias别名 指定一个其他目录

[root@test-AS4 ~]# cd /usr/local/apache-2.2.15/htdocs

[root@test-AS4 htdocs]# mkdir protect

[root@test-AS4 protect]# htpasswd -c apache.passwd angel

[root@test-AS4 protect]# ll
total 8
-rw-r--r--  1 root root 20 Mar 14 21:14 apache.passwd
[root@test-AS4 protect]# cat apache.passwd
angel:Grka1xfi6y5RM
[root@test-AS4 protect]#





今日编译apache时出错:
#./configure --prefix……检查编辑环境时出现:
checking for APR... no
configure: error: APR not found .  Please read the documentation

解决办法:
1.下载所需软件包:
wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz 
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz 
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip  
2.编译安装:
yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
具体步骤如下:
  a:解决apr not found问题>>>>>>
[root@xt test]# tar -zxf apr-1.4.5.tar.gz 
[root@xt test]# cd  apr-1.4.5 
[root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr 
[root@xt apr-1.4.5]# make && make install 

  b:解决APR-util not found问题>>>>
[root@xt test]# tar -zxf apr-util-1.3.12.tar.gz 
[root@xt test]# cd apr-util-1.3.12 
[root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config 
[root@xt apr-util-1.3.12]# make && make install

  c:解决pcre问题>>>>>>>>>
[root@xt test]#unzip -o pcre-8.10.zip 
[root@xt test]#cd pcre-8.10 
[root@xt pcre-8.10]#./configure --prefix=/usr/local/pcre 
[root@xt pcre-8.10]#make && make install


4.最后编译Apache时加上:
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util
--with-pcre=/usr/local/pcre
成功编译完成~
分享到:
评论

相关推荐

    apache安装与配置文档

    Apache 安装与配置文档 Apache 安装与配置文档是 Apache 服务器的安装和配置指南。本文档将指导用户从安装 Apache 到配置 Apache 的整个过程。 一、Apache 安装 Apache 安装需要使用 root 用户进行安装。在安装...

    apache安装配置详解

    apache安装配置详解,希望能帮助到每一位开发人员

    apache安装图解

    Apache 安装图解 Apache 安装图解是指在 Windows 操作系统下安装和配置 Apache HTTP 服务器的详细步骤。Apache 是一个开源的网页服务器软件,可以在 Windows、Linux 和其他操作系统中运行。 Apache 安装前的准备 ...

    PHP+MySQL+apache安装

    安装 Apache 需要下载相关软件包,例如 apache_2.0.55-win32-x86-no_ssl.msi。安装过程中需要选择安装类型, Typical 为默认安装,Custom 为用户自定义安装。选择 Custom 可以对安装进行更多的自定义设置。安装完成...

    linux Apache安装(图文)

    下载适用于Linux的Apache安装程序。通常,官方提供的安装程序是tar.gz压缩格式。例如,你可能会找到名为httpd-version.tar.gz的文件,其中version是Apache的特定版本号。 安装过程分为以下几个步骤: 1. **解压...

    linux中apache安装与配置

    本文将详细介绍如何在Linux环境中安装和配置Apache,包括所需的依赖包和基本步骤。 首先,让我们从安装Apache开始。在大多数Linux发行版中,你可以通过包管理器来安装Apache。例如,在Ubuntu或Debian上,使用`apt`...

    Apache安装与配置

    6. **Apache安装搭建** - **RedHat系统下安装Apache**: - **下载**:从Apache官方网站获取适用于RedHat的源码包或RPM包。 - **解压**:如果是源码包,需要先解压缩,然后编译安装;如果是RPM包,可以使用`yum ...

    php+mySQL+apache安装步骤

    1. 双击下载的Apache安装文件,按照向导进行操作。 2. 在许可协议界面,同意条款并点击“Next”。 3. 在系统信息设置中,填写Network Domain(如:goodwaiter.com)、Server Name(如:www.goodwaiter.com)和 ...

    Apache安装详细介绍

    ### Apache安装详细介绍 #### 一、前言 随着互联网技术的发展,Web服务器成为了构建网站的基础之一。Apache作为一款开源的Web服务器软件,以其强大的功能、稳定性以及灵活性深受广大开发者的喜爱。本文旨在详细...

    在 windows 下为apache 安装多个服务

    ### 在 Windows 下为 Apache 安装多个服务 #### 概述 在 Windows 操作系统下配置 Apache 服务器,可以通过设置多个虚拟主机(Virtual Hosts)的方式实现为同一个服务器安装并运行多个网站。这种方式不仅能够提高...

    Linux下Apache安装

    ### Linux下Apache安装详解 在Linux环境中安装Apache服务器是一项基础且关键的任务,尤其对于搭建Web服务、测试环境或运行各种基于Web的应用程序至关重要。本文将深入解析Linux环境下Apache的安装流程,涵盖解压缩...

    apache 安装程序包

    下面将详细解释这些文件的作用和Apache安装过程中的相关知识点。 1. `controls.dll`:这是一个动态链接库(DLL)文件,通常包含一组特定的功能或控件,供其他应用程序调用。在Apache安装中,它可能用于提供图形用户...

    详解Ubuntu下安装和配置Apache2

    在Ubuntu中安装apache 安装指令: sudo apt-get install apache2 安装结束后: 产生的启动和停止文件是:/etc/init.d/apache2 启动: sudo apache2ctl -k start 停止: sudo apache2ctl -k stop 重新启动: sudo...

    Apache安装,配置反向代理

    ### Apache安装与配置反向代理知识点详解 #### 一、Apache简介 Apache是一款广泛使用的开源Web服务器软件,它能够提供高效、稳定的服务。Apache支持多种操作系统,包括Windows、Linux等。本文将详细介绍如何在...

    rhel5_apache安装

    ### RHEL5 Apache安装配置详解 #### 一、Apache安装概述 在Red Hat Enterprise Linux 5(RHEL5)环境中安装Apache是搭建Web服务器的重要步骤之一。Apache作为世界上最流行的Web服务器软件之一,提供了强大的功能来...

    apache安装指南

    描述在linux下安装apache的整个详细过程

    Apache安装及jboss部署说明文档

    **Apache安装及JBoss部署说明文档** 在信息技术领域,服务器的搭建与应用部署是至关重要的环节,本文档将详述如何在操作系统上安装Apache HTTP Server并配置部署Java应用程序服务器JBoss。Apache作为世界上最流行的...

    winxp+svn+apache安装配置全说明

    【winxp+svn+apache安装配置全说明】 在Windows XP SP3环境下,搭建Subversion(SVN)版本控制系统,通常需要结合Apache HTTP Server作为前端Web服务器。以下是详细的安装配置步骤: 1. **下载所需软件** - ...

Global site tag (gtag.js) - Google Analytics