编译安装LAMP之httpd以及调优
安装顺序:
httpd —>MYSQL—–>php—–>Xcache
httpd:
apr: Apache Portable Runtime
apr是一个可移植运行库,通俗的说是一个虚拟机,只要安装上对应不同操作系统的apr,就能够使用httpd;
在linux系统中,默认安装了apr,但是有可能会遇到apr版本过低,以至于不能够使用最新版本的httpd;
所以可以下载手动编译安装apr,以支持最新的httpd;
httpd编译几大部分 最详细::http://httpd.apache.org/docs/2.4/programs/configure.html
#optionalfeatures
- Multi-Processing Modules
#
—->DSO
# 通俗的讲就是提供了模块化的方式以便使用什么模块;
#(at this point, you can specify which features you want included in Apache by enabling and disabling modules.
#Apache comes with a wide range of modules included by default.
#They will be compiled as shared objects (DSOs) which can be loaded or unloaded at runtime.
http://httpd.apache.org/docs/2.4/install.html
http://shineforever.blog.51cto.com/1429204/301247
if MPMs are built as DSO modules:
例:
–enable-mpms-shared=all 这个使用所有
–enable-mpms-shared=’prefork worker’
–with-mpm=event
这个会默认使用event模块;编译好后 httpd -l 查看;
static:
就是直接静态编译进系统,不能增减;
–enable-modules 一般这个是–enable-modules=most 表明启动很多常用模块,下如同;
–enable-mods-shared 这个是以DSO编译启用 ; –enable-mods-shared=most
–enable-mods-static这个是以static编译加入;
2. Third-party modules
–with-module=module-type:module-file[, module-type:module-file
Note
If you want to build a DSO module instead of a statically linked use (apxs).configure searches automatically for an installed zlib library ,if your source configuration requires one (e.g., when mod_deflate is enabled).
You can set the directory path to the compression library instead.
3. specific packages
–with-apr=DIR|FILE
–with-apr-util=DIR|FILE
–with-ssl=DIR
–with-z=DIR
为了确保开发环境已经装好
yum grouplist ; 列出当前系统已经安装的软件包组、可安装的软件包组; (说明:yum list是可安装的软件包)
1 | #yum groupinstall "Development tools" 确保开发工具包安装; |
apr–>apr-util–>httpd
(在这说句,如果你是直接拷贝这些源码包,如果时间来自未来,所以用hwclock -s 更新到现在时间)
1 | ./configure --help | less 查看帮助信息 |
vi /etc/httpd/httpd.conf
添加PidFile = “/var/run/httpd.pid”
(說明,我在实验时可以不添加这一行)
#########################################################################
添加虚拟主机可以在/etc/httpd/extra/下创建;
然后在/etc/httpd/httpd.conf中把VirtualHost给启用;
- 找到DocumentRoot禁止掉;
- 重新编写一个要么把Include /etc/httpd/extra/httpd-vhosts.conf启用(说明,默认情况下没有启动extra/目录)
- <VirtualHost 172.17.14.58:80>
ServerName www.test.com
DocumentRoot “/www/test.com”
ErrorLog “logs/test.com-error_log”
CustomLog “logs/test.com-access_log” commom
<Directory “/www/test.com”>
Require all granted
这是最基本的写法,一定要注意。 着重声明:2.2版本和2.4版本在定义访问控制的时候不一样了: 原来: Order allow,deny 现在: Require all granted
vim /etc/profile.d/httpd.sh
export PATH=$PATH:/usr/local/apache/bin
重新登录即可。
如果想把event改为prefork.
注释掉:
#LoadModule mpm_event_module modules/mod_mpm_event.so
添加:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
重启:
应该用下面命令来查看当前系统使用的模块。。
httpd -M
httpd 2.4新特性:
- MPM可于运行时装载:
–enable-mpms-shared=all –with-mpm=event - 支持event MPM
- 异步读写
- 在每个模块及每个目录上指定日志级别
- 每请求配置:
; - 增强表达式分析器
- 毫秒级的Keepalive Timeout
- 基于域名的虚拟主机不再需要NameVirtualHost指令;!!!!!!!
- 降低了内存占用
- 支持在配置文件中使用自定义变量
各选项介绍
–prefix=/usr/local/apache 安装路径
–sysconfdir=/etc/httpd24 配置文件路径
–enable-so 允许运行时加载DSO模块
–enable-ssl 如果不加载将无法使用使用https
–enable-cgi 允许使用cgi脚本
–enable-cgid允许线程执行cgi脚本
–enable-rewrite 支持URL重写机制
–with-zlib 支持网络通用压缩库
–with-pcre 支持pcre 用pcre来解决C语言中使用正则表达式的问题
–with-apr=/usr/local/apr 指定apr的安装路径
–with-apr-util=/usr/local/apr-util/ 指定apr-util的安装路径
–enable-modules=most 启用大多数常用的模块
–enable-mpms-shared=all 启用MPM所有支持的模式
–with-mpm=event 默认使用enevt模式
##优化
http://www.jincon.com/archives/243/