You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在服务器上非浏览器环境下常驻运行PHP脚本?

让PHP脚本在服务器常驻运行的方法

一、直接通过服务器命令行启动脚本

首先确认服务器安装了PHP命令行工具(CLI),绝大多数Linux服务器默认自带该工具。

  • 把你的PHP脚本上传到服务器的任意目录,比如/var/www/my_daemon.php
  • 登录服务器的SSH终端,执行启动命令:
    • 前台运行(关闭SSH后脚本会停止):php /var/www/my_daemon.php
    • 后台常驻运行(断开SSH后仍能持续运行):nohup php /var/www/my_daemon.php &
      注:nohup会默认把脚本输出内容写入当前目录的nohup.out文件,方便后续查看输出信息

二、确认脚本是否在运行

因为无法通过浏览器查看echo输出,可通过以下方式验证:

  • 查看进程:在SSH终端执行ps aux | grep my_daemon.php,如果返回结果中存在对应的PHP进程条目,说明脚本正在运行
  • 写入日志文件:修改脚本,把原本的echo输出改为写入日志,示例代码:
    // 每次运行时往日志文件追加时间和运行状态信息
    file_put_contents('/var/www/script_log.txt', date('Y-m-d H:i:s') . ' 脚本正常运行中' . PHP_EOL, FILE_APPEND);
    
    之后执行cat /var/www/script_log.txt查看日志,若有持续新增的内容,说明脚本在正常运行
  • 端口监听检查(针对网络服务类脚本):如果你的脚本需要监听某个端口,执行netstat -tulpn | grep php,查看对应端口是否被PHP进程占用

三、更稳定的管理方案:使用进程守护工具(可选)

如果希望脚本崩溃后自动重启,或者更便捷地管理脚本生命周期,可以用supervisor:

  1. 安装supervisor(以Ubuntu系统为例):apt install supervisor
  2. 创建配置文件,比如/etc/supervisor/conf.d/my_script.conf,内容示例:
    [program:my_script]
    command=php /var/www/my_daemon.php
    user=www-data  # 使用服务器网页用户运行,避免权限问题
    autostart=true  # 服务器开机自动启动脚本
    autorestart=true  # 脚本崩溃时自动重启
    stdout_logfile=/var/www/script_stdout.log  # 标准输出日志路径
    stderr_logfile=/var/www/script_stderr.log  # 错误日志路径
    
  3. 重启supervisor使配置生效:systemctl restart supervisor
  4. 查看脚本运行状态:supervisorctl status my_script

内容的提问来源于stack exchange,提问作者Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:55:20