阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux网站架构系列之Apache—-部署篇

141次阅读
没有评论

共计 10822 个字符,预计需要花费 28 分钟才能阅读完成。

Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。其在 Linux 平台上,结合 Mysql,Php 形成的 LAMP 网站架构是一个强大的 Web 应用程序平台,并且因其低廉的成本,高效的性能受到中小型企业的强烈追捧。从网站的流量上来说,70% 以上的访问流量是 LAMP 来提供的,LAMP 是最强大的网站解决方案。本篇将为大家讲述如何部署一台 Apache 服务器。
这里我先简单说下 apache 的 6 大特征:

运行稳定
开放源代码
跨平台应用
模块化设计
良好的安全性
支持多种网页编程语言

其他有关 Apache 的发展和历史,这里我就不和大家多说了。更多相关信息,你可以去 apache 的官网看一看。下面开始实验部署。

环境:
CentOS6.4 x86_64 位 采用最小化安装,系统经过了基本优化
selinux 为关闭状态,iptables 为无限制模式
ip:192.168.1.113/24
apache 版本:httpd-2.4.6
apr 版本:apr-1.4.8
apr-util 版本:apr-util-1.5.2
pcre 版本:pcre-8.33
源码包存放位置:/server/tools
源码包编译安装位置:/etc/local/ 软件名称

一、准备工作
由于我们的系统采用的是最小化安装的,因此我们在安装 apache 之前需要先进行开发环境和依赖包的安装。
[root@c64-web ~]# yum groupinstall “Development tools” “Server Platform Development” -y  #安装这两个开发环境的软件包组
[root@c64-web ~]# yum install pcre* -y #安装 pcre 兼容的正则表达式

由于我们安装的 httpd-2.4.6 版本比较新,因此默认开发环境包中自带的 apr 包版本比较低,只能支持 2.2.x 系列的 httpd 版本,而这里至少要 1.4 版本以上的 apr 才被支持。因此我们需要先编译安装 apr 才行。
注意:apache2.2.x 版本,只要安装了系统的默认开发环境包组,就不需要再安装 apr 了。
在安装之前简单给大家介绍下 apr 吧。
Apache 可移植运行时(Apache Portable Runtime,简称 APR),它是 Apache HTTP 服务器的支持库,提供了一组映射到下层操作系统的 API。APR 的目标则是希望安全合并所有的能够合并的代码而不需要牺牲性能,因此 Apache 使用这个之后可以有效的提高 Apache 的静态页面的处理能力。
下面开始编译安装 apr
[root@c64-web ~]# cd /server/tools/    #首先我们要先进到存放源码的目录
[root@c64-web tools]# wget http://apache.dataguru.cn//apr/apr-1.4.8.tar.gz  #下载 apr 源码包
[root@c64-web tools]# tar xf apr-1.4.8.tar.gz    #解压源码包
[root@c64-web tools]# cd apr-1.4.8
[root@c64-web apr-1.4.8]# ./configure –prefix=/usr/local/apr  #编译前配置,并指定安装目录,方便维护
[root@c64-web apr-1.4.8]# make          #执行编译
[root@c64-web apr-1.4.8]# make install  #执行安装
执行编译和安装的过程我们可以缩减为下面一条命令即可
[root@c64-web tools]# make&&make install  #该命令表示,当执行 make 编译成功后接着执行 make install 进行安装

接下来,我们还需要在安装 apr-util 这个开发包。为什么呢?因为一般情况下,我们很容易把 APR 开发包理解为仅仅是一个开发包,不过事实上并不是如此。目前,完整的 APR 实际上包含了三个开发包:apr、apr-util 以及 apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。而 apr-iconv 在 apache 安装时暂不涉及,在以后 tomcat 调优时会涉及到这个开发包,到时再关注即可。因此,下面我们就继续开始安装 apr-util。
和 apr 安装过程相似,执行如下命令进行操作
[root@c64-web apr-1.4.8]# cd ..
[root@c64-web tools]# wget http://apache.dataguru.cn//apr/apr-util-1.5.2.tar.gz
[root@c64-web tools]# tar zxf apr-util-1.5.2.tar.gz
[root@c64-web tools]# cd apr-util-1.5.2
[root@c64-web apr-util-1.5.2]#  ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr      #因为 apr-util 依赖于 apr,因此这里需要指定 apr 的安装路径
[root@c64-web apr-util-1.5.2]# make&&make install #这里用上面提到的快捷命令

这样,我们的 apr 和 apr-util 的开发包就安装成功了,那么下面我们就来安装 apache。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92304p2.htm

相关阅读

日志分析工具 Awstats 实战之 Apache 篇 - 多站点日志分析   http://www.linuxidc.com/Linux/2013-11/92273.htm

在 Ubuntu 13.10 下安装支持 SSL 的 Apache  http://www.linuxidc.com/Linux/2013-11/92266.htm

再谈伪装 Apache 版本防止入侵 Web 服务器 http://www.linuxidc.com/Linux/2013-10/91179.htm

Apache Python 模块 mod_wsgi 的编译安装 http://www.linuxidc.com/Linux/2013-09/90637.htm

企业 Shell 脚本分析及切割 Apache 日志实战 http://www.linuxidc.com/Linux/2013-09/90627.htm

二、开始安装
apache 的源码包,我们可以去 apache 的官网或者镜像站点进行下载,并且为了安全,我们下载时最好将 apache 的公钥和数字签名文件同时下载下来,然后对源码包的一致性进行验证,当验证无误后再投入使用。
[root@c64-web apr-util-1.5.2]# cd ..
[root@c64-web tools]# wget http://www.eu.apache.org/dist/httpd/httpd-2.4.6.tar.gz
[root@c64-web tools]# wget http://www.eu.apache.org/dist/httpd/httpd-2.4.6.tar.gz.asc
[root@c64-web tools]# wget http://www.apache.org/dist/httpd/KEYS

下载之后,我们通过 http://www.eu.apache.org/dist/httpd/ 页面介绍的第三种方式进行软件包的验证。
% gpg –import KEYS
% gpg –verify httpd-2.2.8.tar.gz.asc

操作结果如下,一定要注意查看结果后面是不是 not changed 才行,不要执行了就完事了。
[root@c64-web tools]# gpg –import KEYS    #用 gpg 命令导入公钥
gpg: key 2719AF35: “Ben Laurie <ben@gonzo.ben.algroup.co.uk>” not changed
gpg: key A99F75DD: “Rodent of Unusual Size <coar@ACM.Org>” not changed
……
gpg: key 6D5954FA: “Eric Covener <covener@apache.org>” not changed
gpg: Total number processed: 64
gpg:          w/o user IDs: 4
gpg:              unchanged: 60
[root@c64-web tools]# gpg –verify httpd-2.4.6.tar.gz.asc #验证 httpd-2.4.6.tar.gz.asc
gpg: Signature made Tue 16 Jul 2013 12:44:25 AM CST using RSA key ID 791485A8
gpg: Good signature from “Jim Jagielski (Release Signing Key) <jim@apache.org>”  #出现这一行说明这个签名是有效的
gpg:                aka “Jim Jagielski <jim@jaguNET.com>”
gpg:                aka “Jim Jagielski <jim@jimjag.com>”
gpg: WARNING: This key is not certified with a trusted signature! #这个警告是因为本地密钥库不信任该公钥
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: A93D 62EC C3C8 EA12 DB22  0EC9 34EA 76E6 7914 85A8

如果 gpg –verify 的命令输出信息和上面相似,就可以确信 http-2.4.6.tar.gz 确实来自 Apache。这里可以忽略上面表明公钥不可信的警告。因为保证公共密钥签名来自所有者的惟一方法是,密钥的所有者亲自把磁盘上的密钥交给你。不过,采取上面的步骤后,我们已经可以在某种程度上确信下载的 http-2.4.6.tar.gz 可信了。

下面,我们就开始编译安装 apache。
[root@c64-web tools]# tar zxf http-2.4.6.tar.gz
[root@c64-web tools]# cd http-2.4.6
[root@c64-web tools]# ./configure \
–prefix=/usr/local/apache-2.4.6 \      #配置文件目录
–with-apr=/usr/local/apr \            #指定 apr 安装路径
–with-apr-util=/usr/local/apr-util \    #指定 apr-util 安装路径
–with-pcre \                            #支持 perl 的正则表达式
–enable-so \                          #启用动态模块加载
–enable-ssl \                          #基于 ssl 加密传输
–enable-cgi \                        #开启 CGI 脚本
–enable-rewrite \                    #允许 URL 重写
–with-zlib \                        #支持压缩
–enable-deflate \                    #支持网页压缩
–enable-expires \                    #支持网页缓存
–enable-headers \                    #提供允许对 HTTP 请求头的控制
–enable-modules=most \              #支持大多数模块
–enable-mpms-shared=all \            #mpm 模块的动态切换
–with-mpm=event \                    #默认加载使用的 mpm
–with-mpm=worker                    #让 apache 以 worker 方式运行

# 以上是生产环境中常用的一些编译参数
此处提供给你们复制,方便快捷执行命令
[root@c64-web tools]# ./configure –prefix=/usr/local/apache-2.4.6 –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –with-pcre –enable-so –enable-ssl –enable-cgi –enable-rewrite –with-zlib –enable-deflate –enable-expires –enable-headers –enable-modules=most –enable-mpms-shared=all –with-mpm=event –with-mpm=worker  #此处为方便你们复制执行用的,如执行了上面的就不要再执行这个了
[root@c64-web tools]# make&&make install

这样我们的 apache 已经编译安装完成了,对于编译时执行的诸多参数详解,我会在下篇博文进行详细的讲述,本篇不做熬述。

Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。其在 Linux 平台上,结合 Mysql,Php 形成的 LAMP 网站架构是一个强大的 Web 应用程序平台,并且因其低廉的成本,高效的性能受到中小型企业的强烈追捧。从网站的流量上来说,70% 以上的访问流量是 LAMP 来提供的,LAMP 是最强大的网站解决方案。本篇将为大家讲述如何部署一台 Apache 服务器。
这里我先简单说下 apache 的 6 大特征:

运行稳定
开放源代码
跨平台应用
模块化设计
良好的安全性
支持多种网页编程语言

其他有关 Apache 的发展和历史,这里我就不和大家多说了。更多相关信息,你可以去 apache 的官网看一看。下面开始实验部署。

环境:
CentOS6.4 x86_64 位 采用最小化安装,系统经过了基本优化
selinux 为关闭状态,iptables 为无限制模式
ip:192.168.1.113/24
apache 版本:httpd-2.4.6
apr 版本:apr-1.4.8
apr-util 版本:apr-util-1.5.2
pcre 版本:pcre-8.33
源码包存放位置:/server/tools
源码包编译安装位置:/etc/local/ 软件名称

一、准备工作
由于我们的系统采用的是最小化安装的,因此我们在安装 apache 之前需要先进行开发环境和依赖包的安装。
[root@c64-web ~]# yum groupinstall “Development tools” “Server Platform Development” -y  #安装这两个开发环境的软件包组
[root@c64-web ~]# yum install pcre* -y #安装 pcre 兼容的正则表达式

由于我们安装的 httpd-2.4.6 版本比较新,因此默认开发环境包中自带的 apr 包版本比较低,只能支持 2.2.x 系列的 httpd 版本,而这里至少要 1.4 版本以上的 apr 才被支持。因此我们需要先编译安装 apr 才行。
注意:apache2.2.x 版本,只要安装了系统的默认开发环境包组,就不需要再安装 apr 了。
在安装之前简单给大家介绍下 apr 吧。
Apache 可移植运行时(Apache Portable Runtime,简称 APR),它是 Apache HTTP 服务器的支持库,提供了一组映射到下层操作系统的 API。APR 的目标则是希望安全合并所有的能够合并的代码而不需要牺牲性能,因此 Apache 使用这个之后可以有效的提高 Apache 的静态页面的处理能力。
下面开始编译安装 apr
[root@c64-web ~]# cd /server/tools/    #首先我们要先进到存放源码的目录
[root@c64-web tools]# wget http://apache.dataguru.cn//apr/apr-1.4.8.tar.gz  #下载 apr 源码包
[root@c64-web tools]# tar xf apr-1.4.8.tar.gz    #解压源码包
[root@c64-web tools]# cd apr-1.4.8
[root@c64-web apr-1.4.8]# ./configure –prefix=/usr/local/apr  #编译前配置,并指定安装目录,方便维护
[root@c64-web apr-1.4.8]# make          #执行编译
[root@c64-web apr-1.4.8]# make install  #执行安装
执行编译和安装的过程我们可以缩减为下面一条命令即可
[root@c64-web tools]# make&&make install  #该命令表示,当执行 make 编译成功后接着执行 make install 进行安装

接下来,我们还需要在安装 apr-util 这个开发包。为什么呢?因为一般情况下,我们很容易把 APR 开发包理解为仅仅是一个开发包,不过事实上并不是如此。目前,完整的 APR 实际上包含了三个开发包:apr、apr-util 以及 apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。而 apr-iconv 在 apache 安装时暂不涉及,在以后 tomcat 调优时会涉及到这个开发包,到时再关注即可。因此,下面我们就继续开始安装 apr-util。
和 apr 安装过程相似,执行如下命令进行操作
[root@c64-web apr-1.4.8]# cd ..
[root@c64-web tools]# wget http://apache.dataguru.cn//apr/apr-util-1.5.2.tar.gz
[root@c64-web tools]# tar zxf apr-util-1.5.2.tar.gz
[root@c64-web tools]# cd apr-util-1.5.2
[root@c64-web apr-util-1.5.2]#  ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr      #因为 apr-util 依赖于 apr,因此这里需要指定 apr 的安装路径
[root@c64-web apr-util-1.5.2]# make&&make install #这里用上面提到的快捷命令

这样,我们的 apr 和 apr-util 的开发包就安装成功了,那么下面我们就来安装 apache。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92304p2.htm

相关阅读

日志分析工具 Awstats 实战之 Apache 篇 - 多站点日志分析   http://www.linuxidc.com/Linux/2013-11/92273.htm

在 Ubuntu 13.10 下安装支持 SSL 的 Apache  http://www.linuxidc.com/Linux/2013-11/92266.htm

再谈伪装 Apache 版本防止入侵 Web 服务器 http://www.linuxidc.com/Linux/2013-10/91179.htm

Apache Python 模块 mod_wsgi 的编译安装 http://www.linuxidc.com/Linux/2013-09/90637.htm

企业 Shell 脚本分析及切割 Apache 日志实战 http://www.linuxidc.com/Linux/2013-09/90627.htm

三、启动配置
1、创建目录软链接
apache 安装完成之后,我们要先为编译安装好的目录添加软链接。此操作在生产环境中为重要调优参数,添加这条软链接的目的有两点:1、方便人类使用。2、便于以后升级版本。
[root@c64-web httpd-2.4.6]# ln -s /usr/local/apache-2.4.6 /usr/local/apache

2、启动服务
创建好目录软链接之后,我们就可以开始启动 apache 服务了。如果我们是 yum 或者 rpm 安装的话,我们可以直接用 service httpd start 来进行服务启动。因为我们是编译安装的,所以此处我们要这样启动。
[root@c64-web httpd-2.4.6]# cd /
[root@c64-web /]# /usr/local/apache/bin/apachectl -t  #首先我们要检查语法
AH00557: httpd: apr_sockaddr_info_get() failed for c64-web
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OK

此时,我们可以看到在检查语法时,报了两个提示。不过这两个提示不影响,我们的服务器启动和运行。在本篇暂时不讲,等到后面的排错篇,我会详细给大家讲解此问题的解决方案。因此,继续执行开启命令
[root@c64-web /]# /usr/local/apache/bin/apachectl start

启动之后,我们用下面的两个命令分别查看端口是否开启,服务进程是否启用。
[root@c64-web /]# netstat -lnt|grep 80
tcp        0      0 :::80                      :::*                        LISTEN 
[root@c64-web /]# ps -ef|grep httpd
root      2009    1  0 05:14 ?        00:00:00 /usr/local/apache-2.4.6/bin/httpd
daemon    2010  2009  0 05:14 ?        00:00:00 /usr/local/apache-2.4.6/bin/httpd
daemon    2011  2009  0 05:14 ?        00:00:00 /usr/local/apache-2.4.6/bin/httpd
daemon    2012  2009  0 05:14 ?        00:00:00 /usr/local/apache-2.4.6/bin/httpd
root      2104  1928  0 05:14 pts/0    00:00:00 grep httpd

由此看出,我们的服务已经正常启动了,此时我们用客户端访问下我们的 apache 服务器,已经可以实现正常访问。

Linux 网站架构系列之 Apache---- 部署篇

3、优化启动
大家应该感觉到上面的启动项有点很繁琐的感觉了,在这里我们可以对 apache 启动的控制命令进行优化。优化的方法有 3 种。
第一种:修改 PATH 变量
我们可以通过把 apache 启动命令的目录加入到全局环境变量中去,这样就可以实现直接输入命令即可操作,无需带上一长串的路径了。
[root@c64-web /]# echo ‘export PATH=$PATH:/usr/local/apache/bin’ >> /etc/profil
[root@c64-web /]# tail -1 /etc/profile
export PATH=$PATH:/usr/local/apache/bin

第二种:拷贝命令
我们也可以拷贝 apache 的启动命令 apachectl 到系统启动目录下
1 [root@c64-web /]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd

第三种:添加软链接
我们还可以通过添加软链接的方式,将 apache 启动命令目录添加一条软链接到 /etc/init.d/ 系统启动目录下
1 [root@c64-web /]# ln -s /usr/local/apache/bin/apachectl /etc/init.d/httpd

4、开机自启动
下面,我们就要实现 apache 服务的开机自启动了。开机自启动的实现也是有两种方式的
第一种:将 httpd 即 apachectl 命令加入到系统开机启动服务 chkconf 中(此种方法仅限优化启动中后两种操作者进行)
首先我需要对 /etc/init.d/httpd 文件稍作修改
123 [root@c64-web /]# vi /etc/init.d/httpd  #编辑此文件,在 #!/bin/bash 下面添加以下两行
#chkconfig:2345 10 90
#descrption:Activates/Deactivates Apache Web Server

添加完成之后,
[root@c64-web /]# chkconfig –add httpd  #添加 httpd 服务到系统开机启动服务列表
[root@c64-web /]# chkconfig httpd on      #设置 httpd 服务开机自启动
[root@c64-web /]# chkconfig –list httpd  #从列表中查看 httpd 在不同级别的启动情况
httpd          0:off  1:off  2:on    3:on    4:on    5:on    6:off

第二种:添加到开机启动配置文件 /etc/rc.d/rc.local 下
本方法对优化启动的 3 种方法都有效,不过你要注意你设置的 httpd 命令的路径。本例以优化启动的第二种方法为前提
[root@c64-web /]# echo ‘#httpd start by sunsky in 20131104’ >> /etc/rc.d/rc.local  #添加注释,方便以后查看
[root@c64-web /]# echo ‘/etc/init.d/httpd start >/dev/null 2>&1’ >> /etc/rc.d/rc.local
[root@c64-web /]# tail -2 /etc/rc.d/rc.local #添加完成后一定要看是否添加成功
#httpd start by sunsky in 20131104
/etc/init.d/httpd start >/dev/null 2>&1

嗯,到这里我们 apache 服务器的部署就彻底完工了!怎么样是不是很简单啊。中间很多重复的地方,无非就是给大家一种思想,在 linux 上,一个问题是有多种解决办法的,所以一定要多思考,多操作。下一篇博文,我将带大家一起了解 apache 的配置文件,编译参数和其他知识点的说明。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计10822字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中