Centos编译安装Apache 2.4.6笔记 配置

转载链接:http://www.onepx.com/centos-apache-246.html

之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧。

升级前自行啃文档:Upgrading to 2.4 from 2.2。简单的说,如果沿用之前 2.2.x 的配置,Apache将无法启动。

Centos 编译安装 Apache 2.4 准备:

	yum groupinstall "Development tools"

之前服务器是 yum install httpd 安装的 Apache,所以可能解决了部分依赖关系,在我编译安装的过程中,只需要再格外 yum 两个 devel 包:

	yum install zlib-devel pcre-devel

从官方下载:

	wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.6.tar.gzwget http://mirror.esocc.com/apache//apr/apr-1.4.8.tar.gzwget http://mirror.esocc.com/apache//apr/apr-util-1.5.2.tar.gz

解压缩:

	tar -xvf httpd-2.4.6.tar.gztar -xvf apr-1.4.8.tar.gztar -xvf apr-util-1.5.2.tar.gz

一点文件操作:

	mv apr-1.4.8 httpd-2.4.6/srclib/aprmv apr-util-1.5.2 httpd-2.4.6/srclib/apr-utilcd httpd-2.4.4

编译命令:

	./configure --with-included-apr --enable-nonportable-atomics=yes --with-z

出奇的简单,因为默认就有 --enable-mods-shared=most ,模块化安装,以后自行到 httpd.conf 中决定是否开启模块,所以什么 --enable-deflate --enable-rewrite --enable-blablabla 等就完全不必要了。

默认安装的是 event mpm,如果要用 worker ,就需要 --with-mpm=worker,或者干脆 --enable-mpms-shared=all,这样event、worker、prefork就会以模块化的方式安装,要用哪个就在 httpd.conf 里配置就好了。

编译完成后:

	makemake install

安装完毕后, 所有的东西都在 /usr/local/apache2 这个目录下,最重要的当属 conf/httpd.conf ,自行配置吧。

加载模块上,我尽可能的做了精简,仅开启如下:

	必须:LoadModule authz_host_module modules/mod_authz_host.soLoadModule authz_core_module modules/mod_authz_core.soLoadModule userdir_module modules/mod_userdir.soLoadModule dir_module modules/mod_dir.soLoadModule mime_module modules/mod_mime.so
	设置超时:LoadModule reqtimeout_module modules/mod_reqtimeout.so
	以下三个都是为了配合 Google mod_pagespeed 才开启,不用可不开:LoadModule filter_module modules/mod_filter.soLoadModule deflate_module modules/mod_deflate.soLoadModule headers_module modules/mod_headers.so
	Apache 日志:LoadModule log_config_module modules/mod_log_config.so
	指定 Apache 用户和组:LoadModule unixd_module modules/mod_unixd.so
	phpMyAdmin 要用:LoadModule alias_module modules/mod_alias.so
	wordpress, joomla 要用:LoadModule rewrite_module modules/mod_rewrite.so

还有很多配置文件在 /usr/local/apache2/conf/extra 下面,在 httpd.conf 中可以选择是否加载,我加载的部分有:

	配置 timeout, keepalive 的httpd-default.conf
	配置 apache mpm 的httpd-mpm.conf这个很重要,性能优化基本上就靠这个文件了
	配置网站目录的httpd-userdir.conf
	配置虚拟主机的httpd-vhosts.conf

确定所有配置弄好后,就可以删除服务器上以前的 apache 了,至少我就是这么干的...:

	service httpd stopyum remove httpd

把新编译安装的 Apache 2.4.6 拷贝到位:

	cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

编辑 /etc/init.d/httpd 文件,在首行 #!/bin/sh 下面加入两行:

	# chkconfig: 35 85 15# description: Activates/Deactivates Apache 2.4.6

将 Apache 加入开机自动启动:

	chkconfig --add httpdchkconfig httpd on

最后一步,启动编译好的 Apache 2.4.6:

	service httpd start

Done.

Apache 是搞定了,但是之前通过 remi-test 源 yum 安装的 php 5.5 就不能用了,因为它依赖 httpd 包,卸载的时候一起卸掉了,编译 php 的事情,下篇再说。

简单 ab 测试过 apache 2.2 和 apache 2.4 之间的性能差异:

  • 静态内容,2.4完胜;
  • 动态内容,apache 2.4 和 2.2 之间没啥太大区别...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转] C#异步操作

Title 通过委托实现异步调用中BeginInvoke及回调函数的使用 通过委托实现异步调用的步骤: 1.定义委托。 2.将要进行异步调用的方法“实例化”到定义的委托。 3.在委托上调用BeginInvoke方法。其中,BeginInvoke的参数由三个部分构成。第一部分&#xff1…

HTTP Server Error 500 内部服务器错误

问题:HTTP500错误 或 Server Application Error ------------------------------------Server Application ErrorThe server has encountered an error while loading an application during the processing of your request. Please refer to the event log for mo…

使用 ohmyzsh 打造 windows、ubuntu、mac 系统高效终端命令行工具

如果觉得内容不错,可以设为星标置顶我的公众号原标题名:oh my zsh 和 windows git bash 设置别名提高效率写于2018年06月03日在我的微信交流群中听闻很多前端开发比较贫穷,没有买mac电脑(比如我),也没有用过…

request获取mac地址_【Go】获取用户真实的ip地址

原文链接:https://blog.thinkeridea.com/201903/go/get_client_ip.html用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip 非常困难,大多数的框架及工具库都会封装各种获取用户真实 ip 的方法,在 exnet 包…

Installation of Apache HTTPD

转载链接:http://www.linuxfromscratch.org/blfs/view/svn/server/apache.html Installation of Apache-2.4.7 HTTPD For security reasons, running the server as an unprivileged user and group is strongly encouraged. Create the following group and user…

iPhone开发四剑客之《Objective-C基础教程》

iPhone 开发四剑客之《Objective-C 基础教程》 Objective-C 语言是 C 语言的一个扩展集,许多(可能是大多数)具备 Mac OS X 外观的应用程序都是使用该语言开发的。它以 C 语言为基础,添加了一些微妙但意义重大的特性。 苹果公司为…

教师节,你记忆中老师说过印象最深的是什么话?(抽奖)

我记忆中老师说过印象最深的话小学老师:1、小学语文老师李老师说,以后你们可能带个手机就可以支付了~不需要带现金。(在杭州确实实现了,用支付宝即可) 2、小学数学老师李老师说:好好读书的目的是啥&#xf…

Spark List组件滚动条加事件使datalist数据发生变化

<?xml version"1.0" encoding"utf-8"?><!-- http://blog.flexexamples.com/2009/05/31/detecting-when-the-vertical-scroll-bar-is-scrolled-on-a-spark-list-control-in-flex-4/ --><s:Application name"Spark_List_scroller_vert…

keras训练完以后怎么预测_还在使用“龟速”的单显卡训练模型?动动手,让TPU节省你的时间...

点击上方关注&#xff0c;All in AI中国本文将介绍如何使用Keras和Google CoLaboratory与TPU一起训练LSTM模型&#xff0c;与本地计算机上的GPU相比&#xff0c;这样训练能大大缩短训练时间。很长一段时间以来&#xff0c;我都在单张GTX 1070显卡上训练我的模型&#xff0c;它的…

PHP5加载|安装外部C动态库

[1] cd php-5.3.9/ext[2] ./ext_skel --extnamencdocxml[3] cd ncdocxml[4] nano -w config.m4############删除 3 个 dnldnl PHP_ARG_WITH(my_module, for my_module support,dnl Make sure that the comment is aligned:dnl [ --with-my_module Include my_module support])或…

手把手教你写个小程序定时器管理库

背景凹凸曼是个小程序开发者&#xff0c;他要在小程序实现秒杀倒计时。于是他不假思索&#xff0c;写了以下代码&#xff1a;Page({init: function () {clearInterval(this.timer)this.timer setInterval(() > {// 倒计时计算逻辑console.log(setInterval)})}, })可是&…

[New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)

《Windows Azure Platform 系列文章目录》 之前的内容里&#xff0c;我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure&#xff0c;并创建基于该Server 2012 VHD的虚拟机。 我们知道&#xff0c;VHD不仅仅可以保存操作系统&#xff0c;而且可以保存数据文件。 如…

python 退出程序_Python:用Ctrl+C解决终止多线程程序的问题!(建议收藏)

前言&#xff1a;今天为大家带来的内容是Python:用CtrlC解决终止多线程程序的问题&#xff01;文章中的代码具有不错的参考意义&#xff0c;希望在此能够帮助到各位&#xff01;(多数代码用图片的方式呈现出来&#xff0c;方便各位观看与收藏)出发点&#xff1a;前段时间&#…

Mysql InnoDB Plugin安装 install

转载链接&#xff1a;http://www.orczhou.com/index.php/2010/03/innodb-plugin-setup/ InnoDB Plugin较之Built-in版本新增了很多特性&#xff1a;包括快速DDL、压缩存储等&#xff0c;而且引入了全新的文件格式Barracuda。众多测试也表明&#xff0c;Plugin在很多方面优于Bu…

Hibernate的数据过滤查询

数据过滤并不是一种常规的数据查询方法&#xff0c;而是一种整体的筛选方法。数据过滤也可对数据进行筛选&#xff0c;因此&#xff0c;将其放在Hibernate的数据查询框架中介绍。 如果一旦启用了数据过滤器&#xff0c;则不管数据查询&#xff0c;还是数据加载&#xff0c;该过…

若川知乎高赞:有哪些必看的 JS 库?

欢迎星标我的公众号&#xff0c;回复加群&#xff0c;长期交流学习我的知乎回答目前2w阅读量&#xff0c;270赞&#xff0c;现在发到公众号声明原创。必看的js库&#xff1f;只有当前阶段值不值看。我从去年7月起看一些前端库的源码&#xff0c;历时一年才写了八篇《学习源码整…

python用for循环求10的因数_python for循环练习(初级)

for循环练习1for i in range(4):print(i)D:\尚硅谷Python\venv\Scripts\python.exe D:/尚硅谷Python/test.py0123for循环练习2for x in range(1,40,5): #间隔5print(x)D:\尚硅谷Python\venv\Scripts\python.exe D:/尚硅谷Python/test.py16111621263136打印99乘法表for i in ran…

基于EasyUI的Web应用程序及过去一年的总结

前言 一个多月之前已经提交了离职申请&#xff0c;好在领导都已经批准了&#xff0c;过几天就办理手续了&#xff0c;在此感谢领导的栽培与挽留&#xff0c;感谢各位同事在工作中的给我的帮助&#xff0c;离开这个团队确实有一些不舍&#xff0c;不为别的&#xff0c;只因为这个…

MySQL外键创建失败1005原因总结

1、安装mysql有InnoDB的插件扩展 ./configure --prefix/usr/local/mysql --with-pluginscsv,innobase,myisam,heap,innodb_plugin 2、找不到主表中 引用的列 3、主键和外键的字符编码不一致 4、外键字段与要做外键校验的字段类型不匹配 5、MySQL支持外键约束&#xff0c;并…

Hibernate的事件机制

4.8 事 件 机 制 通常&#xff0c;Hibernate执行持久化过程中&#xff0c;应用程序无法参与其中。所有的数据持久化操作&#xff0c;对用户都是透明的&#xff0c;用户无法插入自己的动作。 通过事件框架&#xff0c;Hibernate允许应用程序能响应特定的内部事件&#xff0c;从而…