编译安装LAMP顺序:
httpd--> mysql --> php -->XCache
httpd:
apr--> apr-util -->httpd
0.确保安装环境
#yum groupinstall "Development Tools" "Compatibility Libraries"
#yum -y install pcre-devel openssl-devel
1.安装apr和apr-util:
apr(Apache Protable Runtime)和apr-util和,可以使用rpm包或编译的方式。
#tar -xf httpd-xxx-deps.tar.bz2
#cd httpd-xxxx/srclib/apr
#./configure --prefix=/usr/local/apr
#make && make install
#cd ../apr-util
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make && make install
2.安装httpd
#tar -xf httpd-xxx.tar.bz2
#cd httpd-xxx
#./configure --prefix=/usr/local/httpdXX --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-z --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
#make
#make install
编译选项:
--prefix=/usr/local/httpd 指定文件安装路径
--sysconfdir=/etc/httpd 指定配置文件目录
--enable-so 启用模块
--enable-ssl 启用ssl功能,需要openssl-devel包。
--enable-deflate 默认的文件压缩机制。需要zlib-devel包。
--enable-modules=most
启用模块,可选项有MOULDE-LIST|all|most|few|reallyall
--enable-mods-shared=most
以共享的方式启用模块,可选项有MOULDE-LIST|all|most|few|reallyall
--eanble-mods-static=most
可选项有MOULDE-LIST|all|most|few|reallyall 以静态方式启用模块,即编译到httpd中。
--enable-proxy 启用httpd的代理模块
--enable-proxy-fcgi 允许httpd和php以fastcgi方式下工作
--enable-mpms-shared=all
可选项有MPM-LIST|all。以共享模块化方式使用MPM,prefork模式不用编译php,如果是worker或者是event,则php需要编译成zts格式。
--with-mpm=event
event|worker|prefork|winnt 指定默认使用某个MPM,不指定默认使用event模式。
--enable-rewrite 支持url重写
--enable-cgi
启用被非线程方式MPM使用的CGI脚本,prefork。
--enable-cgid
启用被线程MPM使用的CGI脚本。worker和event模式。
--with-apr=/usr/local/apr 指定apr的安装位置
--wiht-apr-util=/usr/local/apr-util 指定apr-util的安装位置。
--with-z=DIR 指定zlib库的位置,不指定会自动寻找。需要zlib-devel包。
3.创建软链接以方便多版本共存:
#ln -sv /usr/local/httpdXX /usr/local/httpd
注意:多版本共存的情况下,建议修改配置文件中路径为创建好的软链接。这样切换版本时只要重新创建软链接即可。
4.导出头文件和man文档路径
#ln -sv /usr/local/httpd/include/ /usr/include/httpd
#vim /etc/man_db.conf
MANDATORY_MANPATH /usr/local/httpd/man
5.添加服务脚本:
#cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
#vim /etc/init.d/httpd
:1,$s/httpdXX/httpd/g
#sed -i '2a # chkconfig: - 85 15' /etc/init.d/httpd
#sed -i '3a # description: Apache is a World Wide Web server. It is used to server' /etc/init.d/httpd
#chmod 755 /etc/rc.d/init.d/httpd
6.添加环境变量:
#vim /etc/profile.d/httpd.sh
export PATH=$PAHT:/usr/local/httpd/bin
7.修改配置文件:
#vim /etc/httpd/httpd.conf
:1,$s/httpdXX/httpd/g
8.启动httpd
#systemctl start httpd
或
#chkconfig --add httpd
#chkconfig --level 2345 httpd on
#service httpd start
#netstat -tnlp |grep httpd 验证80端口是否开放
编译安装后生成目录:
/usr/local/httpdXX/
bin 二级制程序
build 编译时使用的目录
cgi-bin cgi程序
error 错误信息
htdocs 网页文件存放位置
icons 图标
include 头文件位置
logs 日志文件位置
man man文件
manual 手册
modules 模块
conf 默认配置文件位置
/etc/httpd/ 配置文件所在目录
extra 额外的配置文件
httpd-vhosts.conf 虚拟主机参数
httpd-ssl.conf ssl的相关参数
httpd-mpm.conf 定义不同PMP工作参数