doudongfu8006 2012-10-30 09:44
浏览 35
已采纳

如何使用exec()启动和停止PHP dev服务器

How can I start and stop PHP dev server with exec() function? I need to do this in order to automate my BDD tests.

This stops execution of my script:

echo exec('php -S localhost:8000');

So I need a way to start the server from PHP and be able to continue executing my test. And then I also need a way to stop it from PHP.

  • 写回答

2条回答 默认 最新

  • doutan5798 2012-10-30 11:22
    关注

    This works:

    private function _startDevelopmentServer($pidfile)
    {
        $cmd = 'cd ../../public && php -S 127.0.0.1:8027 index.php';
        $outputfile = '/dev/null';
        shell_exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
        sleep(1);
    }
    
    private function _killDevelopmentServer($pidfile)
    {
        if (file_exists($pidfile)) {
            $pids = file($pidfile);
            foreach ($pids as $pid) {
                shell_exec('kill -9 ' . $pid);
            }
            unlink($pidfile);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大