您当前的位置:首页 > 计算机 > 服务器 > Apache

Apache服务器安装及配置教程

时间:02-12来源:作者:点击数:

Apache 是使用最普遍的 Web 服务器软件。Apache 服务器几乎可以在所有的计算机平台上运行,由于它广泛的跨平台性和安全性,因此 Apache 是最流行的 Web 服务器端软件之一。

Apache简介

Apache(Apache HTTP Server)网站服务器,可以在大多数计算机操作系统中运行,它采用了模块化设计,从而拥有简单而强有力的基于文件的配置过程。

Apache 的模块分为静态模块和动态模块两种。Apache 最基本的模块是静态模块,静态模块不能够随意的添加或卸载;而动态模块则可以进行添加和删除操作,因此使 Apache 具有很大的灵活性。

Apache 的特点有以下几个方面:

  • 具有开放的源代码。
  • 跨平台应用。Apache 服务器可以运行在绝大多数软硬件平台上,几乎所有 UNIX 操作系统都可以运行,同时也可以在 Windows 系统平台上良好的运行。
  • 支持各种 Web 编程语言。
  • 模块化设计。Apache 不是将所有的功能集中在固定的服务程序内部,而是尽可能地通过标准的模块实现特有的功能,因此 Apache 服务器具有良好的扩展性。
  • 运行稳定。Apache 服务器可以用于构建具有大负载访问量的 Web 站点。
  • 良好的安全性。开源软件共同具有的特性。

安装Apache软件

1、下载软件包

Apache 采用源码安装,因此在安装 Apache HTTP Server 之前需要下载一些依赖软件包,有些可以使用 yum 进行直接安装,但还有些需要在 Apache 官方网站下载源码软件:

  • Apache HTTP Server。Apache HTTP Server下载最新的版本是Apache httpd-2.4.41,下载地址为 http://httpd.apache.org/download. cgi#apache24。
  • APR and APR-Util 包。APR and APR-Util 的最新版本下载地址为 http://apr.apache.org/download.cgi。
  • PCRE包。下载地址为 https://sourceforge.net/projects/pcre/files/pcre/。

2、安装

下载完成之后把安装包复制到虚拟机的文件夹下。

注意,Linux 中源码的安装一般分为 3 个步骤:配置(configure)、编译(make)、安装(make install)。其中,“configure --prefix=安装目录,--with-name=依赖库源码解压目录”,--prefix 指的是安装目录,--with 指的是安装本文件所依赖的库文件。

在安装 httpd 时,进行指定安装,用到 ./configure –prefix。“.”表示当前目录;“/”是目录分隔符;总的来说就是当前目录下。

./configure 是源代码安装的第一步,它的作用是检测系统配置,生成 makefile 文件,从而可以使用 make 和 make install 来编译和安装程序。因此可以先输入命令 ls,查看是否有 configure 或者 makefile 文件。

1) 安装包 gcc 或 gcc-c++。先查看是否已经有安装包 gcc 或 gcc-c++,如图 1 所示。


图 1 查询结果

从查询结果中可以看出 gcc 包已经安装,还需要安装 gcc-c++ 包,安装命令如下:

[root@bogon abcd]#yum install gcc-c++

2) 安装包 apr 和 apr-util。查看安装包 apr 和 apr-util,然后进行解压。命令如下:

[root@bogon abcd]# ls apr*
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz
[root@bogon abcd]# tar -zxvf apr-1.7.0.tar.gz
[root@bogon abcd]# cd apr-1.7.0
[root@bogon apr-1.7.0]# ls

输入命令 ls,查看是否有 configure 或者 makefile 文件,执行结果如图 2 所示。


图 2 查看 apr-1.7.0 文件信息

然后新建安装目录 /usr/local/apr,同时检测系统配置,最后再进行安装操作。命令如下:

[root@bogon apr-1.7.0]# mkdir /usr/local/apr
[root@bogon apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@bogon apr-1.7.0]# make
[root@bogon apr-1.7.0]# make install

安装完成后,需要进行验证。验证的部分结果如图 3 所示。


图 3 验证结果

对 apr-util-1.6.1 软件包的解压、配置及安装操作,命令如下:

[root@bogon abcd]# tar -zxvf apr-util-1.6.1.tar.gz
[root@bogon abcd]# cd apr-util-1.6.1
[root@bogon apr-util-1.6.1]# mkdir /usr/local/apr-util
[root@bogon apr-util-1.6.1]#  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
[root@bogon apr-util-1.6.1]# make
[root@bogon apr-util-1.6.1]# make install

3) 安装包 PCRE。需要对 pcre2-10.33.zip 软件包进行解压、配置及安装操作,命令如下:

[root@bogon abcd]# unzip pcre2-10.33.zip
[root@bogon abcd]# cd pcre2-10.33
[root@bogon pcre2-10.33]# mkdir /usr/local/pcre2
[root@bogon pcre2-10.33]#  ./configure --prefix=/usr/local/pcre2 --with-apr=/usr/local/apr/bin/apr-1-config
[root@bogon pcre2-10.33]# make
[root@bogon pcre2-10.33]# make install

4) 安装 Apache。需要对 httpd-2.4.41.tar.gz 软件包进行解压、配置,最后再进行安装操作,命令如下:

[root@bogon abcd]# tar -zxvf httpd-2.4.41.tar.gz
[root@bogon abcd]# cd httpd-2.4.41
[root@bogon httpd-2.4.41]# ./configure --prefix=/usr/local/apache --with-pcre2=/usr/local/pcre2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@bogon httpd-2.4.41]# make
[root@bogon httpd-2.4.41]# make install

configure 脚本主要用来检查系统环境、查找依赖文件、设置安装路径等,常用选项及描述如表 4 所示,另外还可以通过 ./configure -help 查看该脚本支持的所有选项。

表 4 configure常用选项及描述
选 项 描 述
--prefix 指定 Apache httpd 程序的安装主目录
--enable-so 开启模块化功能,支持动态共享对象(DSO)
--enable-ssl 支持 SSL 地址加密
--enable-rewrite 支持地址重写
--with-mpm 设置 Apache httpd 工作模式
--with-suexec-bin 支持 SUID、AGID
--with-apr 指定 apr 程序的绝对路径

5) 启动 Apache 服务。输入命令如下:

[root@bogon httpd-2.4.41]# /usr/local/apache/bin/apachectl start

安装完成后,Apache 会提供 apachectl 的启动脚本,apachectl 脚本在 /usr/local/apache/bin 目录下,该脚本用来进行 Apache httpd 的启动、关闭以及测试功能,apachectl 脚本的参数及描述如表 5 所示。

表 5 apachectl脚本的参数及描述
参 数 描 述
start 启动httpdf王序,如果已经启动过该f王j予,则会报错
stop 关闭httpd程序
restart 重启httpd程序
graceful 启动httpd,不中断现有的http连接请求
graceful-stop 关闭httpd,不中断现有的http连接请求
status 查看httpd程序当前状态
configtest 查看httpd主配置文件语法

没有修改配置文件的情况下,使用 start 启动 httpd 程序,可能会出现错误提示:“Could not reliably determine the server’s fully qualified domain name”,这说明 httpd 无法确定服务器域名称,这时可以通过修改主配置文件的 ServerName 项来解决。该提示也可以忽略,通过 netstat 命令查看 httpd 是否已经启动成功。

在客户端使用浏览器访问该 Web 服务器,当看到“It works!”时,说明服务器可以正常访问了。

配置文件

Apache 配置文件默认存在 /usr/local/apache/conf 目录下,其中最主要的配置文件是 httpd.conf 文件。Apache httpd.conf 配置文件的主要内容及作用如表 6 所示。

表 6 httpd.conf 配置文件的主要内容及作用
主要内容 作 用
ServerRoot 主要用于指定 Apache 的安装路径,此参数值在安装 Apache 时系统会自动把 Apache 的路径写 入。如果是源代码安装,则默认路径为 /usr/local/apache
Listen 设置服务器监听的 IP 以及端口,默认监听服务器本机所有的 IP 地址的 80 端口 XistentIP 地址:] 端口 [协议],IP地址与协议为可选项,默认监听所有的 IP,使用 TCP 协议。一个配置文件中 可以多次使用Listen指令开启多个端口
LoadModule 加载模块。语法格式:LoadModule模块模块文件名称
LoadFile 类似于LoadModule,LoadFile可以通过绝对路径加载modules目录下的模块文件
ServerAdmin 当网站出现故障时,ServerAdmin为客户提供一个可以帮助解决问题的邮件地址
ServerName 设置服务器本机的主机名称及端口
DocumentRoot 设置客户端访问网站的根路径,默认为/usr/local/apache/htdocs
ErrorLog 定位服务器错误日志的位置,默认使用相对路径
ErrorLogFormat 设置错误日志的格式
CustomLog 设置客户端的访问日志文件名及日志格式。语法格式:CustomLog 文件名格式
LogFormat 描述用户日志文件格式。先为 LogFormat 指令设置的日志格式创建别名,再通过 CustomLog 调用该日志格式的别名
Include 允许 Apache 在主配置文件中加载其他的配置文件
Options 为特定目录设置选项 None:不启用任何额外功能;
All:开启除 MultiViews 之外的所有选项;
ExecCGI:允许执行 Options 指定目录下的所有 CGI 脚本;
FollowSymlinks:允许 Options 指定目录下的文件连接到目录外的文件或目录
Order 控制默认访问状态以及 Allow 与 Deny 的次序
使用Order deny,allow,先检查拒绝,再检查允许,当拒绝与允许有冲突时,允许优先,默认 规则为允许;
使用Order allow,deny,先检查允许,再检查拒绝,当允许与拒绝有冲突时,拒绝优先。默认 规则为拒绝
IfDeflne 容器 IfDeflne 容器封装的指令仅在启动 Apache 时,测试条件为真才会被处理,测试条件需要在启动 Apache 时通过 httpd-D 定义
IfModule 容器 封装仅在满足条件时才会处理的指令,根据指定的模块是否加载,决定条件是否满足
Directory 容器 该容器内的指令仅应用于特定的文件系统目录、子目录以及目录下的内容。路径可以使用 ~ 匹 配正则表达式
Files 容器 类似于 Directory 容器,但 Files 容器内的指令仅应用于特定的文件,也可以使用 ~ 匹配正则表达式
FilesMatch 容器 仅使用需要匹配正则表达式的文件,容器内的指令仅应用于匹配成功的特定文件
Location 容器 Location 容器内定义的指令仅对特定的 URL 有效,如果需要使用正则表达式匹配 URL,可以 使用 ~ 符号

常见问题总结

1) 在对 pcre2-10.33.zip 软件包进行解压、检测配置时可能会出错,错误内容如下:

[root@bogon abcd]# unzip pcre2-10.33.zip
[root@bogon abcd]# cd pcre2-10.33
[root@bogon pcre2-10.33]# mkdir /usr/local/pcre2
[root@bogon pcre2-10.33]#  ./configure --prefix=/usr/local/pcre2 --with-apr=/usr/local/apr/bin/apr-1-config
Configure:error:you need a C++ compiler for C++ support.

出现这个错误是因为缺少安装包 gcc-c++ 导致的,输入如下命令进行安装即可。

[root@bogon abcd]# yum install gcc-c++

2) 在对 httpd-2.4.41 进行配置时报错:

[root@bogon httpd-2.4.41]# ./configure --prefix=/usr/local/apache --with-pcre2=/usr/local/pcre2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
configure:checking for APR-util... configure: error: the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file.

上述问题主要是由于 apr-util 没有安装成功导致的,可以通过验证该目录是否为空来判断,因为有时候执行了 make 命令,但却忘记执行 make isntall 命令,所以导致发生这个错误。建议重新安装 apr-util。

3) 安装 apr-util 时出错,错误内容如图 7 所示。


图 7 错误内容

该问题主要是因为缺少 expat.h 文件,需要使用命令安装 expat 库,命令如下:

[root@bogon abcd]# yum install expat-devel

4) 启动 Apache HTTP Server 时报错:

[root@bogon httpd-2.4.41]# /usr/local/apache/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using bogon.gfg1.esquel.com. Set the 'ServerName' directive globally to suppress this message

出现该问题时,需要编辑 httpd.conf 配置文件,添加 SeraverName 的具体 IP 地址。命令如下:

[root@ bogon conf]# cd /usr/local/apache/conf/
[root@ bogon conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@ bogon conf]# vi httpd.conf
ServerName 192.168.9.132:80        //读者需根据自己的IP地址进行添加
[root@ bogon conf]# /usr/local/apache/bin/apachectl restart

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门