【问题标题】:Run command before exit apache/xampp在退出 apache/xampp 之前运行命令
【发布时间】:2017-01-18 00:42:05
【问题描述】:

有没有办法在 Apache 即将退出时运行命令/方法?

我有一个使用 Xampp 在 Windows 中运行的应用程序(仅限本地使用),并且想要在用户结束此应用程序时进行某种清理方法,这发生在按下 Apache 的停止按钮时。

那么我可以使用 Xampp 或 apache 甚至 php 触发的任何类型的事件吗? 并且命令可以来自 cmd、php 等等。

OBS:必须是 apache 关闭之前的东西,所以检查 windows 进程列表不是一个选项。

【问题讨论】:

    标签: php apache xampp


    【解决方案1】:

    IMO,我建议您制作一个停止 Apache 的批处理文件,并在停止命令之前或之后调用您的清理命令。

    这样,在重新安装或更改环境时,批处理文件独立于 XAMPP。

    达到目标的步骤:

    1. 以管理员身份运行cmd
    2. 转到您的 XAMPP Apache bin 文件夹
    3. 将 Apache 安装为服务,httpd -k install
    4. 现在您应该可以通过命令行手动启动和停止 Apache
    httpd -k stop
    httpd -k start
    

    您可以了解更多命令,查看link

    1. 现在创建一个批处理文件,将其命名为您喜欢的任何东西,它会执行清理工作并将其放在您停止或启动 Apache 之前或之后

    测试示例cleanandstopapache.bat:

    clean.bat // or what ever calling cleaning command.
    pause // just to test pause
    httpd -k stop // stops Apache
    

    注意事项:

    1. 通常通过 GUI 启动和停止 XAMPP。使用服务具有相同的效果,唯一不同的是,您使用命令行来启动和停止您的 Apache,也就是说您可以在停止 Apache 之前放置任何脚本来完成这项工作。
    2. 您可以使用 XAMPP GUI 或 XAMPP 服务,但不能同时使用。
    3. 我已经在我的机器上测试过了,它可以工作。
    4. 可以为服务指定一个唯一的自定义名称,以便您可以在 Windows 服务中看到它。

    【讨论】:

    • 很好的答案,但我一直在寻找可以被 apache 或 xampp 触发的东西,只是为了确保清理。但如果不可能,我会在 6 天内给你赏金。
    • 好的,同时我也会看看是否可以访问,在这种情况下我会更新我的答案。也得到了我的投票
    【解决方案2】:

    你可以通过一个答案来激发灵感,它适用于这个 stackoverflow 问题“在 Apache 启动/重启(Windows 服务器)的后台运行 PHP 脚本

    这里是我的解决方案的link
    在你的情况下,你必须更换

    %APACHE_HOME%\bin\httpdVendor.exe -k runservice
    

    通过

    %APACHE_HOME%\bin\httpdVendor.exe -k stopservice
    

    我没有测试这个案例,希望对你有帮助
    不要犹豫,就您的需求向我提问 :)

    祝你好运:)

    【讨论】:

      【解决方案3】:

      应用端和 Apache 端之间存在巨大差异。你指的是哪一个?

      如果您在应用程序结束时需要彻底关闭,请在相应类中使用__deconstruct() 方法。

      如果您需要更进一步的时间,请使用ignore_user_abort()register_shutdown_function() 的组合。

      如果您的意思是 Apache 停止,您应该搜索一个脚本或工具来监视进程列表并在 Apache 进程不在此列表中时执行操作。

      【讨论】:

      • 我的意思是 Apache 停止了,我正在寻找在它实际退出之前被触发的东西,某种 apaches BeferoClosingToDoList ^^"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 2023-04-05
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多