温馨提示×

ubuntu php如何定时任务

小樊
38
2026-10-21 21:58:22
栏目: 编程语言

在 Ubuntu 上给 PHP 设置定时任务,通常是通过 cron 来实现的。下面从基础到常见用法给你讲清楚。


一、最常用方式:使用 cron + PHP CLI

1️⃣ 编辑定时任务

crontab -e

如果是系统级任务(所有用户):

sudo crontab -e

2️⃣ 基本格式

* * * * * 命令
分 时 日 月 周

示例:

  • 每分钟执行
* * * * * /usr/bin/php /var/www/html/test.php
  • 每天凌晨 2 点执行
0 2 * * * /usr/bin/php /var/www/html/cron.php
  • 每 5 分钟执行
*/5 * * * * /usr/bin/php /var/www/html/cron.php

⚠️ 建议写 绝对路径:

which php
# 例如 /usr/bin/php

3️⃣ 记录日志(推荐)

* * * * * /usr/bin/php /var/www/html/cron.php >> /var/log/php_cron.log 2>&1

二、PHP 文件示例

<?php
file_put_contents('/tmp/cron_test.txt', date('Y-m-d H:i:s') . PHP_EOL, FILE_APPEND);

三、使用 URL 方式(不推荐但可用)

如果你必须通过 Web 访问:

* * * * * curl http://localhost/cron.php

✅ 更安全的方式是 CLI
❌ 不推荐暴露在公网


四、查看 / 管理 cron

crontab -l        # 查看当前任务
crontab -r        # 删除所有任务
sudo systemctl status cron

五、Laravel 等框架(进阶)

Laravel 只需一条 cron:

* * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1

六、常见问题

✅ PHP CLI 和 Web PHP 版本不同
→ 用 which php 确认路径

✅ 权限问题
→ 确保 php 文件可执行、目录可写

✅ 环境变量缺失
→ 在 php 中用绝对路径,或 env


如果你愿意,可以告诉我:

  • 用的是 原生 PHP / Laravel / ThinkPHP
  • 是 用户级还是服务器级任务

我可以直接帮你写一条可用的 cron 配置。

0 踩