设为首页 收藏本站
查看: 1500|回复: 0

[经验分享] Apache2.2.17源码编译安装以及配置虚拟主机

[复制链接]

尚未签到

发表于 2018-11-20 12:37:35 | 显示全部楼层 |阅读模式
  WEB服务(一)
  理论部分:
  Apache服务主要是多个服务的组合,名称来自于A Patchy Server 意思是基于原有的WEB程序的代码修改(补丁)后形成的服务器程序
  1995年发布第一个版本1.0一直有Apache Group负责该项目的维护和管理1999年成立了Apache的软件基金会官方网站是http://www.apache.org/
  ASF是非盈利性组织,Apache HTTP Server 就是旗下最著名的软件项目之一
  跨平台应用(支持多数操作系统)
  支持多字符集
  Apache的特点 开放源代码
  功能自定义
  运行稳定
  Apache的版本为1.x和2.x版本
  1.x版本最高位1.3 好管理、兼容性比较好,但是缺少一些新的功能
  2.x版本最高为2.4 相对于1.0而言增加了很多新的功能,配置管理上的风格也很不同。
  可以在http://www.apache.org/download.cgi 去下载最新版本
  一般情况下再生产环境下用的都是源码包进行编译安装,rpm直接就卸载了
  在部署Apache之前一定要考虑服务器的硬件配置。
  现在服务器做的比较好的有浪潮、惠普、IBM、华为、联想。
  之后考虑使用半年之前的软件版本。在配置安装时应该考虑这样一个问题你只用一台服务器做web服务吗?这台服务器宕机怎么办?
  这就会用到lvs技术去实现,今天我们先不去部署,之后我们在进行部署
  本章需要掌握的单词有
  Syntax index listen default document custom
  语法 索引 监听 默认的 文档 光顾
  rewrite Patchy Charset include
  重写 补丁 字符 包括
  实验部分:
  n 实验环境:
  根据公司的信息化建设要求,需要构建一台web网站服务器,考虑到,站点的运行效率,稳定性及可扩展性等原因,要求在RHEL6.5系统中构建httpd服务器,并使用较新的httpd-2.2.17源码版本进行编译安装。
  ? 编译安装httpd服务器,要求支持动态扩展模块,地址重写,多字符集。
  ? 配置并启动httpd服务,将安装目录中的manual手册文档部署到Web根目录下。
  ? 通过www.benet.com访问公司网站。
  ? 安装并配置AWStats日志分析系统,并查看网站访问情况。
  实验拓扑:
DSC0000.jpg

  我们先来搭建DNS服务器,先确定IP地址 DSC0001.jpg
  图1
  我们的IP地址和拓扑图上的IP地址是保持一至的
DSC0002.jpg

  图2
  我事先搭建好了一个本地YUM所以这里直接使用yum安装就可以了
DSC0003.jpg

  图3
  安装完成了,接下来我们进行配置
DSC0004.jpg

  图4
  主配置文件在伪根目录下的etc/这个目录主要就是确定一些全局的配置和区域文件的位置
DSC0005.jpg

  图5
  我们今天用到的配置项非常少,但是搭建一个简单的DNS已经足以
DSC0006.jpg

  图6
  接下来我们根据主配置文件给出的文件名,在/var/named/建立与主配置文件相同的文件名
DSC0007.jpg

  图7
  上面的都是解析时一些选项照着抄就行了,下边的根据自己的实际情况进行更改
DSC0008.jpg

  图8
  更改完成之后我们启动服务,DNS服务器我们就搭建完成了,接下来我们开启WEB主机,开始搭建httpd服务,软件包我已经下载好了
DSC0009.jpg

  图9
  我提供的软件都不是最新的,因为最新版的软件还不是特别稳定,我们选择版本最好是半年之前的版本
  HTTPD服务我们使用2.2.17 日志统计系统 使用 7.3版本
DSC00010.jpg

  图10
  我习惯将软件解压到这个目录下,如果你不习惯也可以按照自己的习惯进行解压,解压之前最好看一下本地时间是否正确,如果不正确需要进行跟正
  date -s "2015-09-13 09:26"
  hwclock将系统时间同步到硬件
DSC00011.jpg

  图11
  我们进入到了解压的目录,我们可以看见有很多文件和子目录
  今天我们只会用到一个 configure 配置程序
DSC00012.jpg

  图12
  我们通过./configure执行这个程序,这里是可以添加很多功能也可以是说自定义安装,安装需要安装的功能
  --prefix=指定安装的路径。
  --enable-so 启动动态加载模块支持。
  --enable-rewrite 启用网页地址重写功能
  --enable-acheset-list 启用字符集支持。
  --enable-cgi 启用CGI 脚本程序支持。
  其实这些只是最基本的可以 ./configure --help查看帮助 你会看见很多可以添加的功能
DSC00013.jpg

  图13
  因为我的系统是base最基本的安装,到了这里会出现错误,我们通过安装gcc软件包组件解决
DSC00014.jpg

  图14
  还是通过yum进行安装否则23个软件包手动安装不太现实
DSC00015.jpg

  图15
  因为我们只是在进行软件安装,所以还需要安装软件开发的功能。
  以上安装的都可以在系统安装时安装,之后在执行图13就可以进行配置了
DSC00016.jpg

  图16
  看到上图所示基本就可以确定是配置成功了
  我们到他的安装目录看一下都有拿下文件,目录
DSC00017.jpg

  图17
  我们可以看见这么多子目录,都是干什么用的呢,我们解释几个重要的
  bin目录 用于存放Apache的一些可执行程序
  cgi-bin目录 用于存放cgi程序的相关程序
  conf目录 存放Apache的主配置文件及其他扩展文件
  error目录 用于存放一些错误信息
  lib目录 用于存放Apache的库文件
  logs目录 用于存放Apache的程序日志包括访问日志和错误日志
  man目录 用于存放 Apache的帮助文档
  modules目录用于存放各种模块文件
  htdocs目录 用于存放网页文档
  以上是一些主要的目录
  接下来我们来优化Apache可执行程序的路径
DSC00018.jpg

  图18
  使用ln -s 建立符号连接,为什么链接到/usr/local/bin目录下
DSC00019.jpg

  图19
  默认$PATH这个变量搜索的路径没有apache的这个安装目录下的bin目录,我们执行程序的时候必须要输入绝对路径,所以我们将Apache的执行程序链接到可以搜索到的目录,这样程序执行的时候就不用使用绝对路径了
DSC00020.jpg

  图20
  我们优化完执行程序之后,我们开始建立Apache的服务,Apache的程序文件,就在bin目录下,所以我们将他拷贝到/etc/init.d/下改名字叫做httpd 因为在系统开机的时候会开启一些服务,我们将服务程序放到了init.d目录下,可以让这个服务开机自动启动
DSC00021.jpg

  图21
  使用vim编辑器打开,只需要天加两行就可以了
  第二行 的35 是启动的级别 在那个级别下开启这个服务
  85 是开机的时候启动的顺序 数字越大启动的越靠后
  15 关机的时候 关闭的顺序 数字越大越靠后反之则先关闭
  第三行是描述信息
DSC00022.jpg

  图22
  脚本我们修改完成之后,我们将httpd服务添加为系统服务,在35级别下运行
DSC00023.jpg

  图23
  接下来就到了这个主配置文件了,我们通过修改这个主配置文件,可以修改大部分Apache的功能,那我们来看一下都有哪些配置项
  常用的全局配置参数
  ServerRoot:服务目录
  ServerAdmin:管理员邮箱
  User:运行服务的用户身份
  Group:运行服务的组身份
  ServerName:网站服务器的域名
  DocumentRoot:网页文档的根目录
  Listen:监听的IP地址、端口号
  PidFile:保存httpd进程PID号的文件
  DirectoryIndex:默认的索引页文件
  ErrorLog:错误日志文件的位置
  CustomLog:访问日志文件的位置
  LogLevel:记录日志的级别,默认为warn
  Timeout:网络连接超时,默认为300秒
  KeepAlive:是否保持连接,可选On或Off
  MaxKeepAliveRequests:每次连接最多请求文件数
  KeepAliveTimeout:保持连接状态时的超时时间
  Include:需要包含进来的其他配置文件
  还有一些区域配置项,这些都是用于控制权限所应用的,今天我们还不会用到,注意,如果要对配置文件进行修改最好是先对其进行备份
DSC00024.jpg

  图24
  我们使用快捷键定位到97行,默认存在站点域名的配置项,但是是被注释掉的,我们可以在下面在添加一行
  来确定站点的域名,这个域名我们已经在DNS能够正常解析了
DSC00025.jpg

  图25
  保存完成之后我们通过apache -t 对配置文件进行语法检查,如果没有错误,则如上图所示
DSC00026.jpg

  图26
  我们通过绝对路径进行服务的启动,也可以使用server httpd start
DSC00027.jpg

  图27
  我们通过ps 命令 查看httpd服务的进程,已经存在了,运行的用户是daemon这个用户
  还可以通过netstat -anpt | grep httpd 命令来查看监听的状态
  好了服务启动没有任何问题
DSC00028.jpg

  图28
  我们在防火墙上开启一条规则,可以让客户端访问我的80端口,这只是临时生效,我们在后续的课程会系统的进行学习
DSC00029.jpg

  图29
  通过客户端我们进行访问,已经是没有任何问题了
DSC00030.jpg

  图30
  现在我们搭建Awstats系统 这个系统还是比较简单的
DSC00031.jpg

  图31
  我们将解压之后的目录 改个名字移动到/usr/local/awstats 是为了后续的操作方便一些,也可以进行统一管理
DSC00032.jpg

  图32
  进入到awstats目录下,我们只会用到上图红框内的两个可执行程序,但是现在没有执行权限,那我们就给他一个
DSC00033.jpg

  图33
  赋予执行权限
DSC00034.jpg

  图34
  执行这个程序,下面输入的是Apache的主配置文件的绝对路径,这个系统会用到httpd服务,所以需要在主配置文件中输入几条配置项
DSC00035.jpg

  图35
  apache默认的配置文件格式不是最好的,awstats系统会自动更改日志文件的格式,这里只需要Y确认就好了
DSC00036.jpg

  图36
  创建一个统计站点的配置文件Y确认
DSC00037.jpg

  图37
  输入要统计的站点域名
DSC00038.jpg

  图38
  这里直接回车配置文件的路径我们使用默认的就可以了
  之后连续按两次回车就配置完成了
DSC00039.jpg

  图38
  会在/etc/awststs目录下生成一个配置文件
  我们对这个配置文件进行编辑
DSC00040.jpg

  图39
  找到50行 将路径改为apache访问日志的绝对路径
DSC00041.jpg

  图40
  这一行不需要修改,我们按配置文件中指定的目录进行创建就可以了
DSC00042.jpg

  图41
  创建好了
DSC00043.jpg

  图42
  接下来执行第二个程序,now 现在就开始
DSC00044.jpg

  图43
  为了始终跟新日志,我们创建一个计划任务
DSC00045.jpg

  图44
  让这个程序每隔1分钟执行一次
DSC00046.jpg

  图45
  启动这个服务,查看服务的运行状态,正在运行
DSC00047.jpg

  图46
  这就是awstats向httpd.conf 文件注册的配置项
DSC00048.jpg

  图47
  最后对配置文件进行重新加载, 这种方式可以让服务不中断的加载配置文件.
  好了开始访问awstats系统
DSC00049.jpg 48

  输入 http://www.lzg.com/awstats/awstats.pl?config=www.lzg.com访问
  已经能够访问了
  但是这样访问是不是路径太长不太方便啊。我们可以对这个路径进行优化
DSC00050.jpg

  图47
  建立一个网页
DSC00051.jpg

  图48
  之后就可以访问http://www.lzg.com/aws/html 访问这个页面,如果想让这个页面作为首页,可以将其修改为index.htnl
  好了实验已经完成了,这里面有几个注意事项
  1、配置文件一定要进行备份
  2、一定要进行语法检查
  3、服务启动之后一定要进行验证
  4、DNS服务器需要关闭iptables 否则udp 53号端口不能被访问




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-637384-1-1.html 上篇帖子: PHP介绍和Apache的Module、CGI与FastCGI 下篇帖子: 中间件apache安装部署步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表