-c<httpd指令> 在读取配置文件前,先执行选项中的指令。
-C<httpd指令> 在读取配置文件后,再执行选项中的指令。
-d<服务器根目录> 指定服务器的根目录。
-D<设定文件参数> 指定要传入配置文件的参数。
-f<设定文件> 指定配置文件。
-h 显示帮助。
-l 显示服务器编译时所包含的模块。
-L 显示httpd指令的说明。
-S 显示配置文件中的设定。
-t 测试配置文件的语法是否正确。
-v 显示版本信息。
-V 显示版本信息以及建立环境。
-X 以单一程序的方式来启动服务器。
httpd -k stop 停止
httpd -k start 运行
httpd -k restart 重起
httpd -k graceful 某个子进程死掉,生成新的子进程来替补
httpd -k graceful-stop 停止运行graceful
httpd -e level 显示开始运行错误
httpd -E file 错误日志文件
httpd -M 显示所有装载模块
以服务方式运行Apache for Windows
Apache仅能够在Windows NT上作为服务运行。
你可以选择在安装Apache时自动将其安装为一个服务。如果你选择"for all users",那么Apache将会被安装为服务。如果你选择了"only for the Current User",你可以在安装后手动将Apache注册为服务。注意,你必须是Administrators组的成员才能成功注册服务。
使用Apache Service Monitor工具,可以查看和管理你所在网络上的所有机器上安装的Apache服务的状态。为了能够使用这个工具管理Apache服务,你必须首先自动或手动安装Apache服务。
你可以在Apache安装目录的bin子目录下,使用如下命令将Apache安装为Windows NT服务:
apache -k install
如果你想指定服务的名称,可以使用下面的命令。当你在同一机器上安装多个Apache服务时,你必须为它们指定不同的名字。
apache -k install -n "服务名"
如果你想为不同名称的服务使用不同的配置文件,则安装时需要指定配置文件:
apache -k install -n "服务名" -f "c:/files/my.conf"
如果你使用的是第一个命令,也就是除 -k install 外没有其它命令行参数,那么被安装的服务名称将是:Apache2 ,配置文件将使用conf/httpd.conf 。
要移除一个Apache服务很简单:
apache -k uninstall
或者使用下述命令移除特定名称的Apache服务:
apache -k uninstall -n "服务名"
通常,启动、重启、关闭Apache服务的方法是使用Apache Service Monitor工具,另外也可以使用控制台命令:NET START Apache2 和 NET STOP Apache2 或者通过Windows服务控制面板。在启动Apache服务之前,你应当使用下面的命令检查一下配置文件的正确性:
apache -n "服务名" -t
你可以通过命令行开关来控制Apache服务。要启动一个已经安装的Apache服务,可以使用:
apache -k start
要停止一个已经安装的Apache服务,可以使用:
apache -k stop
或
apache -k shutdown
要重启一个运行中的Apache服务,强制它重新读取配置文件,可以使用:
apache -k restart
默认情况下,Apache服务将被注册为以本地系统用户(LocalSystem帐号)身份运行。LocalSystem帐号没有网络权限,不能通过任何Windows安全机制访问网络,包括文件系统、命名管道、DCOM或secure RPC ,但是它对于本地资源却拥有广泛的特权。
永远不要把网络权限授予LocalSystem帐号!如果你需要Apache能够访问网络资源,最好按照下述方法为Apache另外建立一个单独的帐号。
你应该建立一个单独的帐号来运行Apache服务。特别是在必须通过Apache访问网络资源的时候,我们更加强烈建议你这样做。
创建一个普通域用户帐号,并牢记对应的密码。
授予这个新建的帐号作为服务登陆和作为操作系统一部分运行权限。在Windows 2000/XP/2003上你可以使用"组策略"或通过"本地安全策略"的MMC接口来完成这个操作。
确认新建的帐号是Users组的一个成员。
确认新建的帐号具有读取和执行(RX)所有文档和脚本目录(例如:htdocs和cgi-bin)的权限。
确认新建的帐号对Apache的logs目录具有读/写/删除(RWD)的权限。
确认新建的帐号对Apache.exe二进制文件具有读取和执行(RX)的权限。
一个很好的实践经验是赋予运行Apache服务的用户读取和执行(RX)整个Apache2目录的权限,并且对logs子目录具有读/写/删除(RWD)的权限。
如果你允许使用这个帐号作为一个用户和服务登录,你就可以用这个帐号登录上去测试执行脚本、读取web页的权限,还可以通过控制台窗口启动Apache 。如果这样工作正常,你又执行了上述的操作,那么Apache就能够正常地作为服务运行了。
错误代码2186是一个很好的提示,说明你需要检查"登陆为"选项,因为服务器不能访问必要的网络资源。
当启动Apache服务时你可能会遇到一个来自Windows服务管理器的错误信息。 例如,如果你想使用控制面板中的服务小程序启动Apache,可能会得到下面这条信息:
Could not start the Apache2 service on //COMPUTER
Error 1067; The process terminated unexpectedly.
只要启动Apache出错你就会得到这个错误信息。为了弄清是什么引起了错误, 你应该遵循作为控制台程序运行Apache中的建议。
对于让Apache在Windows 9x下以类似Windows NT服务的方式运行有一些支持。都是高度试验性的,即使能够工作,Apache软件基金会将不会证实其可靠性和未来的支持。继续进行你自己的冒险吧!
这两种"服务"有相当大的区别:
如果你输入下列命令,Apache会尝试启动,如果成功他将在后台运行:
Apache -n "服务名" -k start
例如,通过桌面的快捷方式运行,如果服务启动成功一个控制台窗口会快速闪过并立刻消失。如果启动时Apache检测到比如httpd.conf文件中有不正确的设置这样的问题,则控制台窗口会保持可见。这样将显示一个有助于追踪错误原因的错误信息。
Windows 9x不支持NET START或者NET STOP命令,因此你在命令中必须使用Apache的服务控制选项。你可能希望为每个命令设置一个快捷方式以便你能够只需要从开始菜单或者桌面一点就能执行所需的操作。
Apache和Windows 9x没有提供让Apache服务以特定的具有网络权限的用户身份运行的支持。实际上,Windows 9x在本地机器上根本没有提供安全性。这就是Apache软件基金会从不支持使用Windows 9x作为公用httpd服务器的原因。这个便利存在的唯一目的是协助用户开发web内容和学习Apache服务器,或者也许在一个安全的、私有的网络上充当intranet服务器。
作为控制台程序运行Apache
虽然通常推荐将Apache作为服务来运行,但是在某些情况下从命令行运行反而更加容易。在Windows 9x上,从命令行运行Apache是推荐的方法,因为这些系统中缺乏可靠的服务支持。
可以使用下列命令将Apache作为控制台程序从命令行运行:
apache
Apache将会一直保持运行,直到被Ctl+C组合键中断。
你还可以在安装后通过 开始按钮 --> 程序 --> Apache HTTP Server 2.2.xx --> Control Apache Server 在控制台中运行Apache 。这将会打开一个控制台窗口并在其中启动Apache 。如果你没有将Apache安装为服务,该窗口将一直保持打开,直到被Ctl+C组合键中断,并在几秒钟后退出。如果你已经将Apache安装为服务,那么那个快捷方式将会启动服务,如果Apache服务已经启动了,则什么也不做。
你可以在另外一个控制台窗口中输入以下命令停止正在运行的Apache服务:
apache -k shutdown
这种方法比使用Ctl+C组合键更好,因为它可以让Apache完成所有当前的操作并且优雅的清理所占用的资源。
Apache可以被从新启动,这将导致它重新读取配置文件,重启前所有正在进行的操作都将不被打断的完成。可以使用下面的命令重启Apache :
apache -k restart
请熟悉Unix版本Apache的用户注意,这些命令对应于Unix命令 kill -TERM pid 和 kill -USR1 pid 。命令中之所以使用 -k 选项,就是为了提醒用户这是源自Unix下的kill命令。
如果Apache控制台窗口在启动后出乎意料的立即关闭,请打开一个新的控制台窗口,切换到Apache的安装目录下bin子目录中,运行apache命令并读取错误信息。然后再到日志目录中查看error.log文件以寻找可能的配置错误。如果你的Apache采用的是默认安装,这些命令应当是:
c:
cd "/Program Files/Apache Group/Apache2/bin"
apache
等候Apache停止,或者使用Ctl+C组合键,然后输入下列内容:
cd ../logs
more < error.log
可以在命令行中为Apache指定一个配置文件,有两种方法可以在命令行中指定配置文件:
-f 可以指定一个绝对路径或相对路径的配置文件:
apache -f "c:/my server files/anotherconfig.conf"
或
apache -f files/anotherconfig.conf
-n 可以指定已安装的Apache服务所使用的配置文件:
apache -n "服务名"
在这两种情况下,必须在配置文件中设置正确的ServerRoot值。
如果你没有使用 -f 或 -n 指定配置文件的路径,Apache将会使用硬编码在服务器内的路径,比如:conf/httpd.conf 。这个内置的路径是相对于安装目录的,要想检查这个内置的路径,你可以通过 -V 开关调用Apache ,查看名为SERVER_CONFIG_FILE的变量值:
apache -V
Apache将会按照下列顺序检查ServerRoot值:
通过 -C 命令行开关指定的ServerRoot值。
通过 -d 命令行开关指定的值。
当前工作目录。
安装二进制文件时在注册表中登记的项目。
编译进二进制文件的值,该值默认为:/apache ,你可以使用 apache -V 命令查看显示出来的HTTPD_ROOT变量的值。
在安装过程中,将会在注册表中新建一个版本特定的注册表键。这个键的位置取决于安装类型。如果你选择的是"for all users",那么将位于HKEY_LOCAL_MACHINE分支下,如下所示:
HKEY_LOCAL_MACHINE/SOFTWARE/Apache Group/Apache/2.0.43
如果你选择的是"for the current user only",那么将位于HKEY_CURRENT_USER分支下,其中的内容取决于当前登陆的用户,如下所示:
HKEY_CURRENT_USER/SOFTWARE/Apache Group/Apache/2.0.43
这个键已经被编译进了服务器,使得你可以测试新版本而又不影响老版本。当然,你必须注意不要在同一个目录中安装两个不同的版本。
如果你没有使用二进制安装,在某些情况下Apache将会抱怨注册表键丢失。如果在这种情况下服务器仍然可以找到正确的配置文件,那么就可以安全的忽略它。
这个注册表键其实就是包含conf子目录的ServerRoot目录。Apache将要从中读取httpd.conf文件。如果该配置文件中又包含了一个ServerRoot指令,并且指向的目录与注册表中登记的不同,Apache将以配置文件中的指令为准。如果你复制了配置文件或者整个Apache目录到一个新的位置,你要千万记得修改httpd.conf中的ServerRoot指令,使其指向正确的位置。
如果运行命令行遇到如下提示:
Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
這個問題應該是沒有在 conf/httpd.conf 中設定 ServerName ,找到这行,把注释去掉即可解决。
添加第二个Apache服务:Apache安装目录的bin子目录下,使用如下命令将Apache安装为Windows NT服务:httpd.exe -k install -n “服务名” -f “d:/apache2.2/conf/web2.conf”
其他的命令:
将Apache安装为Windows NT服务:
httpd -k install
指定服务的名称,当你在同一机器上安装多个Apache服务时,你必须为它们指定不同的名字。
httpd -k install -n “服务名”
为不同名称的服务使用不同的配置文件,则安装时需要指定配置文件:
httpd -k install -n “服务名” -f “c:/files/my.conf”
如果你使用的是第一个命令,也就是除 -k install 外没有其它命令行参数,那么被安装的服务名称将是:Apache2 ,配置文件将使用conf/httpd.conf 。
移除一个Apache服务:
httpd -k uninstall
使用下述命令移除特定名称的Apache服务:
httpd -k uninstall -n “服务名”
通常,启动、重启、关闭Apache服务的方法是使用Apache Service Monitor工具,另外也可以使用控制台命令:NET START Apache2 和 NET STOP Apache2 或者通过Windows服务控制面板。在启动Apache服务之前,你应当使用下面的命令检查一下配置文件的正确性:
httpd -n “服务名” -t
你可以通过命令行开关来控制Apache服务。要启动一个已经安装的Apache服务,可以使用:
httpd -k start
要停止一个已经安装的Apache服务,可以使用:
httpd -k stop
或
httpd -k shutdown
要重启一个运行中的Apache服务,强制它重新读取配置文件,可以使用:
httpd -k restart
重装完系统后
1. 运行CMD进入命令行
2. 进入apache所在的目录下的bin目录,如 d:/apache/bin 运行
httpd -k install
只要这一步apache服务就安装好了
3. 进入mysql所在的目录下的bin目录,如 d:/mysql/bin 运行
mysqld -install
也只要这一步Mysql服务就安装好了
卸载
和上面2步一样,进入bin目录
apache卸载命令
httpd -k uninstall
mysql卸载命令
mysqld -remove