在Apache启动/重启(Windows Server)后台运行PHP脚本

gxx*_*gxx 7 php windows apache windows-server-2008-r2

我按照本手册中的说明在Windows Server 2008上安装了Apache 2.4和PHP 5.4: Apache安装手册.Apache现在作为服务运行.

我的应用程序需要一个php websocket脚本才能在后台运行.我正在手动运行它:

php myscript.php
Run Code Online (Sandbox Code Playgroud)

问题是:有没有办法在系统(apache)重启时自动启动后台脚本?

我找到了以下主题,但我不知道在哪里可以找到适用于Windows的apache启动脚本.

任何帮助都会很有帮助.

Hal*_*nis 12

我想出了一个解决方案:)

  • 创建指向Apache目录的环境变量

    APACHE_HOME = C:/PATH/TO_APACHE
    
    Run Code Online (Sandbox Code Playgroud)

  • 重命名 %APACHE_HOME%\bin\httpd.exe%APACHE_HOME%\bin\httpdVendor.exe
  • 创建批处理文件并输入以下代码:

    php myscript.php
    %APACHE_HOME%\bin\httpdVendor.exe -k runservice
    exit 0
    
    Run Code Online (Sandbox Code Playgroud)

  • 下载/安装免费软件BatToExeConverter(下一步,下一步,......)
  • 打开已安装的转换器并打开新创建的批处理文件
  • 单击Build EXE按钮(使用默认配置)
  • 保存文件:%APACHE_HOME%\bin\httpd.exe
  • 启动 Apache服务器
  • 测试:Windows 7,Apache 2.4,Advanced Bat to Exe Converter 2.92


    Jar*_*nen 1

    当作为服务运行时,您将不会有启动脚本。

    执行一些服务实现,允许将其他程序作为服务运行,然后使新服务(正在运行您的脚本)成为 Apache 服务的依赖项。但是,当 apache 重新启动时,这不会重新启动脚本。

    一种可能的解决方案使用 SrvStart,另一种使用 ServiceEx

    也许不要将Apache安装为服务,然后编辑启动/重新启动脚本,并使用上述方法将Apache作为服务运行(而不是使用Apache自己的安装程序)。