Laravel 10 Artisan Cron执行时区警告问题求助
解决Laravel Cron任务时区警告问题
针对cPanel环境下Laravel 10.x通过Cron执行schedule:run时出现的PHP Warning: PHP Startup: Invalid date.timezone value '', using 'UTC' instead警告,提供以下几种可行方案:
确认CLI模式PHP时区配置
先执行命令查看当前CLI版本PHP的时区设置:/opt/alt/php82/usr/bin/php -i | grep date.timezone如果输出为空或不是
Europe/Zagreb,说明CLI模式的PHP未加载到你设置的时区配置。Cron命令中指定自定义php.ini
找到你在cPanel中配置的自定义php.ini路径(通常在网站根目录,比如/home/your_username/public_html/php.ini),修改Cron命令为:/opt/alt/php82/usr/bin/php -c /home/your_username/public_html/php.ini artisan schedule:run >/dev/null 2>&1这样强制让PHP加载你的自定义配置文件。
在Cron命令中直接设置时区
修改Cron任务命令,通过PHP参数直接指定时区:/opt/alt/php82/usr/bin/php -d date.timezone=Europe/Zagreb artisan schedule:run >/dev/null 2>&1或者通过环境变量设置:
export TZ=Europe/Zagreb && /opt/alt/php82/usr/bin/php artisan schedule:run >/dev/null 2>&1在Laravel调度内核中强制设置时区
打开app/Console/Kernel.php,在boot()方法中添加时区设置代码:public function boot() { date_default_timezone_set('Europe/Zagreb'); parent::boot(); }这样Laravel启动调度任务时会强制覆盖PHP的时区设置,从根源避免警告。
内容的提问来源于stack exchange,提问作者Maka
相关产品推荐
相关产品推荐

