V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PHPYgod
V2EX  ›  PHP

PHP 后台运行,求大佬

  •  
  •   PHPYgod · 2021-02-21 17:18:31 +08:00 · 2490 次点击
    这是一个创建于 1370 天前的主题,其中的信息可能已经有所发展或是发生改变。
    环境: 宝塔 LAMP apache Timeout:600
    上代码,百度上 COPY 的
    <?php
    ignore_user_abort(true);
    set_time_limit(60);
    ob_end_clean(); //清除之前的缓冲内容,这是必需的
    header("Connection: close"); //告诉浏览器,连接关闭了,这样浏览器就不用等待服务器的响应
    header("HTTP/1.1 200 OK"); //可以发送 200 状态码,以这些请求是成功的,要不然可能浏览器会重试
    ob_start();#开始当前代码缓冲
    header("Content-type:text/html;charset=utf-8");
    echo "running,,,,.";
    $size=ob_get_length();
    header("Content-Length: $size");
    ob_end_flush();#输出当前缓冲
    flush();#输出 PHP 缓冲
    while(!file_exists('close.txt')){//只有不存在 close.txt 就一直运行
    $fp = fopen('log.txt','a+');
    fwrite($fp,date("H:i:s") . " \r\n");
    fclose($fp);
    sleep(10);
    }
    ?>
    浏览器访问是 等待响应直到 60S 后 503 网站也没有 log.txt 文件

    求大佬指点。。。。。。。
    6 条回复    2021-02-22 10:39:27 +08:00
    815979670
        1
    815979670  
       2021-02-21 23:16:11 +08:00
    可以考虑使用定时任务去触发 cli 没有超时的问题
    liuxu
        2
    liuxu  
       2021-02-22 01:03:50 +08:00
    小兄弟你不要胡说,明明就有 log.txt ,你肯定是找错目录了

    simapple
        3
    simapple  
       2021-02-22 09:00:28 +08:00
    检查 close.txt ,写入 log.txt ? 文件名的问题?
    NjcyNzMzNDQ3
        4
    NjcyNzMzNDQ3  
       2021-02-22 09:46:38 +08:00
    后台运行就别用 LAMP 的 PHP-FPM 模式,如果还想用就 shel_exec("php -i") 来调用 php 的 cli 方式。
    或者同#1 一样定时调用。
    PHPYgod
        5
    PHPYgod  
    OP
       2021-02-22 10:12:31 +08:00
    @liuxu 嗯,有 log.txt 但是 set_time_limit(600); log.txt 内也只有 2 分钟的记录,无法长时间运行!
    awanganddong
        6
    awanganddong  
       2021-02-22 10:39:27 +08:00
    在浏览器里边,是通过 php-fpm 来执行的,属于请求响应模式,没有常驻内存。
    一般 php-fpm 设置有超时时间,超时就会报 nginx 错误。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3093 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:46 · PVG 18:46 · LAX 02:46 · JFK 05:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.