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

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-16 08:43:08 | 显示全部楼层 |阅读模式
                      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日志分析系统,并查看网站访问情况。
  实验拓扑:
   wKiom1Zv_IDz4FKNAABy57fkB24172.jpg
  我们先来搭建DNS服务器,先确定IP地址 wKioL1Zv_Irxm2GrAADUWNbWqns465.jpg
  图1
  我们的IP地址和拓扑图上的IP地址是保持一至的
   wKioL1Zv_IzQPdfJAAAbWptKMug540.jpg
  图2
  我事先搭建好了一个本地YUM所以这里直接使用yum安装就可以了
   wKioL1Zv_IzxgOU1AABEWScYGRU650.jpg
  图3
  安装完成了,接下来我们进行配置
   wKiom1Zv_Ibihci2AAAltn65UTs975.jpg
  图4
  主配置文件在伪根目录下的etc/这个目录主要就是确定一些全局的配置和区域文件的位置
   wKioL1Zv_I-hPPWyAABEXh-GSJ4216.jpg
  图5
  我们今天用到的配置项非常少,但是搭建一个简单的DNS已经足以
   wKiom1Zv_IiBtdTjAAAlf0oxD-E486.jpg
  图6
  接下来我们根据主配置文件给出的文件名,在/var/named/建立与主配置文件相同的文件名
   wKioL1Zv_JHil-soAABDZC-WIu4731.jpg
  图7
  上面的都是解析时一些选项照着抄就行了,下边的根据自己的实际情况进行更改
   wKiom1Zv_IryHlptAAAo0WBUmc8982.jpg
  图8
  更改完成之后我们启动服务,DNS服务器我们就搭建完成了,接下来我们开启WEB主机,开始搭建httpd服务,软件包我已经下载好了
   wKioL1Zv_JOzp9jmAAAjMcOi6KE399.jpg
  图9
  我提供的软件都不是最新的,因为最新版的软件还不是特别稳定,我们选择版本最好是半年之前的版本
  HTTPD服务我们使用2.2.17 日志统计系统 使用 7.3版本
   wKiom1Zv_I3hnPBRAAAhF_M9YHY432.jpg
  图10
  我习惯将软件解压到这个目录下,如果你不习惯也可以按照自己的习惯进行解压,解压之前最好看一下本地时间是否正确,如果不正确需要进行跟正
  date -s "2015-09-13 09:26"
  hwclock将系统时间同步到硬件
   wKioL1Zv_JbguWRjAABl8AyxAgQ520.jpg
  图11
  我们进入到了解压的目录,我们可以看见有很多文件和子目录
  今天我们只会用到一个 configure 配置程序
   wKioL1Zv_JfyHK47AAAm56k-oi4281.jpg
  图12
  我们通过./configure执行这个程序,这里是可以添加很多功能也可以是说自定义安装,安装需要安装的功能
  --prefix=指定安装的路径。
  --enable-so 启动动态加载模块支持。
  --enable-rewrite 启用网页地址重写功能
  --enable-acheset-list 启用字符集支持。
  --enable-cgi 启用CGI 脚本程序支持。
  其实这些只是最基本的可以 ./configure --help查看帮助 你会看见很多可以添加的功能
   wKioL1Zv_JjiLvFXAABFRTY0HIY214.jpg
  图13
  因为我的系统是base最基本的安装,到了这里会出现错误,我们通过安装gcc软件包组件解决
   wKioL1Zv_JnjFHeXAAAhl2PKQRI798.jpg
  图14
  还是通过yum进行安装否则23个软件包手动安装不太现实
   wKioL1Zv_JqCPADgAAAlYQePlQQ100.jpg
  图15
  因为我们只是在进行软件安装,所以还需要安装软件开发的功能。
  以上安装的都可以在系统安装时安装,之后在执行图13就可以进行配置了
   wKiom1Zv_JTRF9ydAABTxKGSGCk822.jpg
  图16
  看到上图所示基本就可以确定是配置成功了
  我们到他的安装目录看一下都有拿下文件,目录
   wKioL1Zv_J6Dw7a_AACFl9PZrBU263.jpg
  图17
  我们可以看见这么多子目录,都是干什么用的呢,我们解释几个重要的
  bin目录 用于存放Apache的一些可执行程序
  cgi-bin目录 用于存放cgi程序的相关程序
  conf目录 存放Apache的主配置文件及其他扩展文件
  error目录 用于存放一些错误信息
  lib目录 用于存放Apache的库文件
  logs目录 用于存放Apache的程序日志包括访问日志和错误日志
  man目录 用于存放 Apache的帮助文档
  modules目录用于存放各种模块文件
  htdocs目录 用于存放网页文档
  以上是一些主要的目录
  接下来我们来优化Apache可执行程序的路径
   wKioL1Zv_KDTxJWnAAAqRNEojb4231.jpg
  图18
  使用ln -s 建立符号连接,为什么链接到/usr/local/bin目录下
   wKioL1Zv_KGAwSixAAA0HjUs-LI666.jpg
  图19
  默认$PATH这个变量搜索的路径没有apache的这个安装目录下的bin目录,我们执行程序的时候必须要输入绝对路径,所以我们将Apache的执行程序链接到可以搜索到的目录,这样程序执行的时候就不用使用绝对路径了
   wKioL1Zv_KOwhwECAAAwUNsrtQ8240.jpg
  图20
  我们优化完执行程序之后,我们开始建立Apache的服务,Apache的程序文件,就在bin目录下,所以我们将他拷贝到/etc/init.d/下改名字叫做httpd 因为在系统开机的时候会开启一些服务,我们将服务程序放到了init.d目录下,可以让这个服务开机自动启动
   wKiom1Zv_J-yyZErAADukrFKuRE750.jpg
  图21
  使用vim编辑器打开,只需要天加两行就可以了
  第二行 的35 是启动的级别 在那个级别下开启这个服务
  85 是开机的时候启动的顺序 数字越大启动的越靠后
  15 关机的时候 关闭的顺序 数字越大越靠后反之则先关闭
  第三行是描述信息
   wKioL1Zv_KizhtxvAABKbbLGw6Y314.jpg
  图22
  脚本我们修改完成之后,我们将httpd服务添加为系统服务,在35级别下运行
   wKiom1Zv_KHCu5OXAAAk4qVT7Bs094.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:需要包含进来的其他配置文件
  还有一些区域配置项,这些都是用于控制权限所应用的,今天我们还不会用到,注意,如果要对配置文件进行修改最好是先对其进行备份
   wKioL1Zv_KvTG6J0AACQh9yAmWI713.jpg
  图24
  我们使用快捷键定位到97行,默认存在站点域名的配置项,但是是被注释掉的,我们可以在下面在添加一行
  来确定站点的域名,这个域名我们已经在DNS能够正常解析了
   wKiom1Zv_PyA9BzLAAAkmuoUCP0570.jpg
  图25
  保存完成之后我们通过apache -t 对配置文件进行语法检查,如果没有错误,则如上图所示
   wKioL1Zv_Qaj5jsdAAAjfHJ8O5Y909.jpg
  图26
  我们通过绝对路径进行服务的启动,也可以使用server httpd start
   wKioL1Zv_QnDgaFiAACaO6PmM2w861.jpg
  图27
  我们通过ps 命令 查看httpd服务的进程,已经存在了,运行的用户是daemon这个用户
  还可以通过netstat -anpt | grep httpd 命令来查看监听的状态
  好了服务启动没有任何问题
   wKiom1Zv_QSxo2h1AAAq_YiMNQ0344.jpg
  图28
  我们在防火墙上开启一条规则,可以让客户端访问我的80端口,这只是临时生效,我们在后续的课程会系统的进行学习
   wKiom1Zv_QSTf4jHAABLAOJfzs0672.jpg
  图29
  通过客户端我们进行访问,已经是没有任何问题了
   wKiom1Zv_QbAgtVRAABS3hW1d1w899.jpg
  图30
  现在我们搭建Awstats系统 这个系统还是比较简单的
   wKiom1Zv_QaCqvZPAAAo_UmMmbE078.jpg
  图31
  我们将解压之后的目录 改个名字移动到/usr/local/awstats 是为了后续的操作方便一些,也可以进行统一管理
   wKioL1Zv_RHS6h7bAADS2LvPhwo671.jpg
  图32
  进入到awstats目录下,我们只会用到上图红框内的两个可执行程序,但是现在没有执行权限,那我们就给他一个
   wKioL1Zv_RPQFurhAABA8wc-4B4370.jpg
  图33
  赋予执行权限
   wKioL1Zv_Ragc89sAAEm1xX5TtQ397.jpg
  图34
  执行这个程序,下面输入的是Apache的主配置文件的绝对路径,这个系统会用到httpd服务,所以需要在主配置文件中输入几条配置项
   wKiom1Zv_ROAVhF1AACpU4s7MiY314.jpg
  图35
  apache默认的配置文件格式不是最好的,awstats系统会自动更改日志文件的格式,这里只需要Y确认就好了
   wKiom1Zv_RTh0E0-AABdf_65i34817.jpg
  图36
  创建一个统计站点的配置文件Y确认
   wKiom1Zv_RXD0kD-AABGq9ATJLo882.jpg
  图37
  输入要统计的站点域名
   wKioL1Zv_R7z30DIAABG9VqrNdo735.jpg
  图38
  这里直接回车配置文件的路径我们使用默认的就可以了
  之后连续按两次回车就配置完成了
   wKiom1Zv_RfSge0YAAAnAXY6SBE184.jpg
  图38
  会在/etc/awststs目录下生成一个配置文件
  我们对这个配置文件进行编辑
   wKiom1Zv_RqDynjWAACHayQIyRY649.jpg
  图39
  找到50行 将路径改为apache访问日志的绝对路径
   wKioL1Zv_SWRruJVAADJkVs0zr4566.jpg
  图40
  这一行不需要修改,我们按配置文件中指定的目录进行创建就可以了
   wKiom1Zv_R-gBhhoAAAziP6g62E828.jpg
  图41
  创建好了
   wKiom1Zv_SPTuX_iAAC_IhQ4yw8636.jpg
  图42
  接下来执行第二个程序,now 现在就开始
   wKiom1Zv_STCGonRAAAfqV26adA435.jpg
  图43
  为了始终跟新日志,我们创建一个计划任务
   wKioL1Zv_SyD5EalAAAlLoXzEHo811.jpg
  图44
  让这个程序每隔1分钟执行一次
   wKioL1Zv_S3SQFdIAAA7yYhE2ss897.jpg
  图45
  启动这个服务,查看服务的运行状态,正在运行
   wKioL1Zv_S_BgQ0YAACam5lCAiU736.jpg
  图46
  这就是awstats向httpd.conf 文件注册的配置项
   wKiom1Zv_SrzXfrCAAAlpznn7Qo817.jpg
  图47
  最后对配置文件进行重新加载, 这种方式可以让服务不中断的加载配置文件.
  好了开始访问awstats系统
   wKiom1Zv_SzzIOSoAAB-cCPYHWA143.jpg 48
  输入 http://www.lzg.com/awstats/awstats.pl?config=www.lzg.com访问
  已经能够访问了
  但是这样访问是不是路径太长不太方便啊。我们可以对这个路径进行优化
   wKiom1Zv_S3TaBh6AAAo1Ak432A372.jpg
  图47
  建立一个网页
   wKiom1Zv_S7jQC8cAABOLNGsR24162.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-151766-1-1.html 上篇帖子: apache日志切割与不记录指定文件类型日志 下篇帖子: 中间件apache安装部署步骤 虚拟主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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