[英]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.