Windows
下载
安装方式有自己编译源码和下载别人编译好的,这里选择从第三方下载,官网地址http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/binaries/win32提供了几个第三方。下载后是个压缩包,我解压后的放在D:developjava
unhttpd-2.2.34-win64下,该目录下包含bin、conf、htdocs、lib等目录及文件。
安装服务
Apache HTTP Server提供了一个实用工具Apache Service Monitor,为了使用这个工具管理,首先安装Apache HTTP Server服务。
在Apache安装目录的bin子目录下,使用httpd -k install命令将Apache HTTP Server安装为Windows NT服务。当在同一机器上安装多个Apache服务时,必须为它们指定不同的名字,使用httpd.exe -k install -n "MyServiceName" 命令。默认配置文件是在 confhttpd.conf,如果需要指定自定义配置文件路径,使用httpd.exe -k install -n "MyServiceName" -f "c:filesmy.conf"命令。打开httpd.conf,设置 ServerRoot 为本机安装目录"D:/develop/java/run/httpd-2.2.34-win64",设置ServerName 为本机域名或者ip地址。
httpd.exe -k uninstall移除默认Apache HTTP Server服务。httpd.exe -k uninstall -n "MyServiceName" 移除指定的Apache HTTP Server服务。
启动和停止
通常,启动、重启、关闭Apache HTTP Server服务的方法是使用Apache Service Monitor工具,另外也可以使用控制台命令NET START 服务名和 NET STOP 服务名。开机启动要在services.msc 中找到上面安装的服务后配置。
在启动Apache HTTP Server服务之前,应当使用httpd.exe -n "MyServiceName" -t 命令检查一下配置文件的正确性,如果提示Syntax OK,代表安装成功。httpd.exe也可以用来启动和停止服务,启动命令是 httpd.exe -k start -n "MyServiceName"。停止命令是 httpd.exe -k stop -n "MyServiceName"或者httpd.exe -k shutdown -n "MyServiceName"。重启命令是 httpd.exe -k restart -n "MyServiceName"。
Linux
编译和安装
静态编译是指在编译的时候会直接整合到可执行文件中,所以静态编译成的文件会比较大。优点是编译成功的可执行文件已经包含了某些功能,启动的时候那些功能就加载进来了,而不再需要向外部读取。缺点是文件体积大,升级难易大,如果那些功能要更新,则需要重新编译。
动态编译的时候,在可执行文件里只有一个“指向”的位置而已,也就是说当可执行文件需要使用到某些功能时,可执行文件才会去外部读取。优势是缩小了文件体积,加快了编译速度,缺点是要附带一个动态链接库才能运行。
Apache HTTP Server的核心思想就是模块化,将不同的功能抽成模块,当我们需要某个功能的时候,加载对应的模块就可以了,LoadModule指令用来加载动态编译的模块。动态编译即在编译的时候,通过使用--enable-mods-shared=[module list] 或者--enable-[module]=shared参数来指定哪些/哪个【module】是动态编译的。--enable-modules=[module list]或者--enable-[module]=static参数来指定哪些/哪个【module】是静态编译的。如果不加参数,默认是静态编译。
到官网下载源码压缩包,如图
使用root用户安装。打开终端,输入tar -zxvf httpd-2.2.34.tar.gz 命令解压缩到当前目录,输入 cd httpd-2.2.34/ 进入解压缩后的目录。当前目录下的configure是可执行文件,可以检查当前是否具有安装软件所需的文件和工具,可以不带参数执行。如果需要知道哪些参数可用,那么执行./configure --help查看帮助文档。Apache HTTP Server的模块分为基本模块、扩展模块、实验模块,--enable-mods-shared=all会安装所有的基本模块,但是扩展模块和实验模块需要明确指定才能安装。如果要安装所有模块,可以执行 ./configure --with-ldap --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache"。--prefix用于指定安装目录。执行configure时如果都符合要求,那么会在当前目录生成Makefile文件。如果出现错误那么就搜索下解决办法。最后执行make和make install即可完成安装。
总结下命令:
1.tar -zxvf httpd-2.2.34.tar.gz
2.cd httpd-2.2.34/
3../configure --with-ldap --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache" --prefix=/usr/local/httpd-2.2.34/ --with-mpm=worker
4.make
5.make install
安装完成后,执行安装目录/bin/apachectl -M,可以查看所有模块并显示是静态还是动态编译。
配置服务
sysvinit
vim /etc/rc.d/init.d/httpd,输入以下内容:
#!/bin/sh
# description: Apache auto start-stop script.
# chkconfig: 35 70 30
APACHE_HOME=/usr/local/httpd-2.2.34
APACHE_OWNER=test
if test ! -f "$APACHE_HOME/bin/apachectl"
then
echo "Apache httpd startup: cannot start"
exit
fi
case "$1" in
'start')
su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl start"
;;
'stop')
su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl stop"
;;
'restart')
su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl restart"
;;
esac
35代表在3和5运行级别下开机启动,70代表启动时脚本的执行顺序,30代表关闭时脚本的执行顺序。服务将由test用户运行。
让所有用户可以执行这个服务:chmod a+x /etc/rc.d/init.d/httpd
添加httpd服务:chkconfig --add httpd
查看httpd服务:chkconfig --list httpd
开启httpd服务:service httpd start
关闭httpd服务:service httpd stop
重启httpd服务:service httpd restart
如何卸载?
1.service httpd stop停止服务
2.chkconfig --del httpd删除服务
3.删除/etc/rc.d/init.d/httpd文件
4.删除/usr/local/httpd-2.2.34/目录