编译安装
[root@GNOME-C7 apr-util-1.6.1]# cd ../httpd-2.2.27/ [root@GNOME-C7 httpd-2.2.27]# ./configure --sysconfdir=/etc/httpd --prefix=/usr/local/apache2 --with-apr=/usr/local/apr-1.6.3 --with-apr-util=/usr/local/apr-unil-1.6.3 --with-mpm=prefork --with-included-apr --enable-mods-shared=most --enable-ssl --enable-suexec --enable-so 遇到报错:configure: error: ...No recognized SSL/TLS toolkit detected 解决方法:yum install -y openssl-devel [root@GNOME-C7 httpd-2.2.27]# make [root@GNOME-C7 httpd-2.2.27]# make install 编译第二次,从而得到httpd.worker ##这种方法不确定是否可以 [root@GNOME-C7 httpd-2.2.27]# cd ../ [root@GNOME-C7 ~]# rm -rf httpd-2.2.27/ [root@GNOME-C7 ~]# tar -xf httpd-2.2.27.tar.bz2 [root@GNOME-C7 ~]# cd ./httpd-2.2.27/ [root@GNOME-C7 httpd-2.2.27]# ./configure --sysconfdir=/etc/httpd --prefix=/usr/local/apache2 --with-apr=/usr/local/apr-1.6.3 --with-apr-util=/usr/local/apr-unil-1.6.3 --with-mpm=worker --with-included-apr --enable-mods-shared=most --enable-ssl --enable-suexec --enable-so [root@GNOME-C7 httpd-2.2.27]# make ##不用执行make install否则就会覆盖当前apache的文件了 [root@GNOME-C7 httpd-2.2.27]# cp ./httpd /usr/local/apache2/bin/httpd.worker 本次使用的编译参数 --prefix=/PATH:指明安装路径; --sysconfdir=/PATH:指明配置文件路径;不指明,默认在安装路径下; --enable-so:表示启用DSO动态模块加载机制; --enable-ssl:启用支持ssl功能; --enable-mods-shared=most:表示动态的编译进来大多数的模块;如果使用--enable-mods-shared=all,则指动态的编译所有的模块。 --with-apr=/PATH:指明apr程序包的路径;不使用=指明路径会在默认路径查找; --with-apr-util=/PATH:指明apr-util程序包的路径; --with-mpm=prefork:指明默认使用的MPM模块; 说明: 静态编译:将module直接在安装的过程中放到apache中,当apache使用module的时候,就可以直接使用了。 动态编译:将module引入到apache之中,在使用的时候才会真正的去加载(通过LoadModule命令) --with.....:表示依赖的包,不指明路径,编译安装时会到默认路径下找; --without.....:不依赖的包; --enable.....:启用特性; --disable.....:禁用特性; 可能用到的其他参数 [root@Centos7 httpd-2.2.29]# ./configure --help ##查看有哪些支持的选项 部分内容如下: Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin]:所有用户执行的命令放在哪个目录; --sbindir=DIR system admin executables [EPREFIX/sbin]:管理员执行的命令放在哪个目录; --libexecdir=DIR program executables [EPREFIX/libexec]:库执行的程序放在哪个目录; --sysconfdir=DIR read-only single-machine data [PREFIX/etc]:配置文件放在哪个目录; --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]:共享数据目录放在哪个目录; --localstatedir=DIR modifiable single-machine data [PREFIX/var]:本地状态目录放在哪个目录; --libdir=DIR object code libraries [EPREFIX/lib]:库文件放在哪个目录; --includedir=DIR C header files [PREFIX/include]:头文件放在哪个目录;安装后的产生的目录
]# ll /usr/local/apache2/ 显内容示: drwxr-xr-x 2 root root 4096 Apr 14 08:51 bin 程序路径 drwxr-xr-x 2 root root 4096 Apr 14 08:51 build 编译安装的相关文件 drwxr-xr-x 2 root root 4096 Apr 14 08:51 cgi-bin cgi格式的程序文件 drwxr-xr-x 4 root root 4096 Apr 14 08:51 conf 配置文件 drwxr-xr-x 3 root root 4096 Apr 14 08:51 error 错误页面 drwxr-xr-x 2 root root 4096 Apr 14 08:30 htdocs 网页文件存放路径 drwxr-xr-x 3 root root 4096 Apr 14 08:51 icons 图标 drwxr-xr-x 2 root root 4096 Apr 14 08:51 include 头文件,任何支持二次开发的程序都提供头文件 drwxr-xr-x 2 root root 4096 Apr 14 08:53 logs 日志 drwxr-xr-x 4 root root 4096 Apr 14 08:51 man 帮助手册 drwxr-xr-x 14 root root 12288 Jul 16 2014 manual 官方文档 drwxr-xr-x 2 root root 4096 Apr 14 08:51 modules 模块 3.1.4. 导出二进制程序目录至PATH变量 [root@centos7 ~]# export PATH=$PATH:/usr/local/apache2/bin [root@centos7 ~]# vim /etc/profile.d/apache2.sh export PATH=$PATH:/usr/local/apache2/bin 3.1.5. 导出man手册 [root@centos7 ~]# vim /etc/man_db.conf MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man [root@GNOME-C7 ~]# manpath /usr/local/share/man:/usr/share/man/overrides:/usr/share/man:/usr/local/apache2/man 3.1.6. 导出头文件 [root@GNOME-C7 ~]# ln -sv /usr/local/apache2/include /usr/include/httpd ‘/usr/include/httpd’ -> ‘/usr/local/apache2/include’ 3.1.7. 导出库文件 [root@GNOME-C7 ~]# vim /etc/ld.so.conf.d/httpd.conf /usr/local/apache2/lib [root@GNOME-C7 ~]# ldconfig -v [root@GNOME-C7 ~]# ldconfig -p | grep apache libaprutil-1.so.0 (libc6,x86-64) => /usr/local/apache2/lib/libaprutil-1.so.0 libaprutil-1.so (libc6,x86-64) => /usr/local/apache2/lib/libaprutil-1.so libapr-1.so.0 (libc6,x86-64) => /usr/local/apache2/lib/libapr-1.so.0 libapr-1.so (libc6,x86-64) => /usr/local/apache2/lib/libapr-1.so 3.1.8. 创建服务管理脚本