在 Ubuntu 上给 PHP 设定“定时任务”,通常有两种常见方式:
crontab -e
如果是第一次使用,会让你选择编辑器(推荐 nano 或 vim)。
假设你的 PHP 脚本是:
/var/www/html/test.php
* * * * * /usr/bin/php /var/www/html/test.php >> /var/log/php_cron.log 2>&1
0 2 * * * /usr/bin/php /var/www/html/test.php
which php
通常是:
/usr/bin/php
crontab -l
chmod +x /var/www/html/test.php
适合长期运行、需要日志管理的任务。
sudo nano /etc/systemd/system/php-task.service
[Unit]
Description=PHP Cron Task
[Service]
ExecStart=/usr/bin/php /var/www/html/test.php
sudo nano /etc/systemd/system/php-task.timer
[Unit]
Description=Run PHP task every hour
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable php-task.timer
sudo systemctl start php-task.timer
查看状态:
systemctl list-timers
如果你用 Laravel:
* * * * * cd /var/www && php artisan schedule:run >> /dev/null 2>&1
| 方式 | 适合场景 |
|---|---|
| crontab | 简单脚本、最常用 |
| systemd timer | 服务化、可控性强 |
| 框架调度 | Laravel 等 |
如果你愿意,可以告诉我:
我可以帮你写可直接用的 cron 配置。