繁体   English   中英

在IIS中使用PHP重新启动Apache

[英]Restarting Apache Using PHP in IIS

我正在尝试使用bat文件重新启动Apache2.2 Web服务器,该文件由IIS中使用exec()在IIS中运行的PHP调用,Apache和IIS在同一服务器中。

PHP代码

exec("cmd /c restart.bat");

蝙蝠文件

"PATH_TO_APACHE\\bin\\httpd.exe" -k restart -n Apache2.2

当我通过http加载php重新启动时,我的Apache错误日志文件中出现“无法打开日志”错误。

我的搜索结果大多数都说存在80端口冲突,但是当我执行netstat时,没有冲突,我的IIS正在侦听其他端口。 双击.bat文件即可,但是从PHP运行它会得到错误。 有任何想法吗? 请指教。

IIS在指定用户的上下文中运行所有可执行脚本,通常这是IUSR_ [MACHINENAME]帐户。 可以在池配置的IIS配置中更改此帐户。

您遇到的问题可能是不允许该用户访问日志文件位置。

要跟踪此问题,我将:1.(危险,仅用于测试):将IUSR帐户放入本地管理员组。 再次测试。 如果可行,您就知道这是一个权限问题。 2.尝试使用runas命令以IUSR用户身份运行cmd.exe,并在控制台窗口中执行命令,这样您就可以看到所有错误消息并更轻松地进行测试。 3.允许IUSR写入apache日志位置。

完全不同的尝试是用PHP创建标记文件,并使用计划的任务以管理员身份运行以重新启动apache(如果该标记文件存在)。 这样,您无需授予IUSR帐户更多权限,也无需使用单独的代码来处理重启。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM