温馨提示×

ubuntu php怎样设定时任务

小樊
43
2026-10-04 10:06:42
栏目: 编程语言

在 Ubuntu 上给 PHP 设定“定时任务”,通常有两种常见方式:


一、使用 Linux 的 crontab(最常用 ✅)

1️⃣ 编辑当前用户的定时任务

crontab -e

如果是第一次使用,会让你选择编辑器(推荐 nano 或 vim)。


2️⃣ 添加 PHP 定时任务

假设你的 PHP 脚本是:

/var/www/html/test.php

示例 1:每分钟执行一次

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

示例 2:每天凌晨 2 点执行

0 2 * * * /usr/bin/php /var/www/html/test.php

3️⃣ 确认 PHP 路径

which php

通常是:

/usr/bin/php

4️⃣ 查看已设置的任务

crontab -l

5️⃣ 常见问题

  • 没有执行权限
    chmod +x /var/www/html/test.php
    
  • 脚本路径写错
  • php 命令不在 PATH 中(建议写绝对路径)

二、使用 systemd timer(进阶,适合服务化)

适合长期运行、需要日志管理的任务。

1️⃣ 创建 service

sudo nano /etc/systemd/system/php-task.service
[Unit]
Description=PHP Cron Task

[Service]
ExecStart=/usr/bin/php /var/www/html/test.php

2️⃣ 创建 timer

sudo nano /etc/systemd/system/php-task.timer
[Unit]
Description=Run PHP task every hour

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target

3️⃣ 启动

sudo systemctl daemon-reload
sudo systemctl enable php-task.timer
sudo systemctl start php-task.timer

查看状态:

systemctl list-timers

三、Laravel / 框架用户(补充)

如果你用 Laravel:

* * * * * cd /var/www && php artisan schedule:run >> /dev/null 2>&1

总结

方式 适合场景
crontab 简单脚本、最常用
systemd timer 服务化、可控性强
框架调度 Laravel 等

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

  • PHP 版本
  • 脚本路径
  • 想多久执行一次

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

0 踩