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

服务器运行PHP项目出现Call to undefined function cal_days_in_month()错误

解决「Call to undefined function cal_days_in_month()」错误的方案

这个问题我帮不少开发者排查过,根本不是权限配置的问题——cal_days_in_month() 是PHP的Calendar扩展提供的函数,XAMPP为了方便本地开发,默认就预装并启用了这个扩展,但很多生产服务器(尤其是那种精简配置的)默认是没开启甚至没安装这个扩展的,这就是你本地正常、服务器报错的核心原因。

具体解决步骤

根据你的服务器系统和权限情况,对应操作如下:

1. 拥有SSH权限的独立服务器(Debian/Ubuntu系列)

  • 先安装Calendar扩展:
    sudo apt-get update
    sudo apt-get install php-calendar
    
  • 安装完成后,重启你的Web服务和PHP-FPM(如果用的话):
    # 重启Apache
    sudo systemctl restart apache2
    # 重启Nginx + PHP-FPM
    sudo systemctl restart nginx
    sudo systemctl restart php-fpm
    

2. 拥有SSH权限的独立服务器(CentOS/RHEL系列)

  • 安装扩展:
    # CentOS 7及以下用yum
    sudo yum install php-calendar
    # CentOS 8+用dnf
    sudo dnf install php-calendar
    
  • 同样重启服务:
    # 重启Apache
    sudo systemctl restart httpd
    # 重启Nginx + PHP-FPM
    sudo systemctl restart nginx
    sudo systemctl restart php-fpm
    

3. 无SSH权限的共享主机

  • 登录你的主机控制面板(比如cPanel、Plesk),找到「PHP选项」或者「PHP扩展管理」的入口;
  • 在扩展列表里找到「calendar」选项,勾选启用后保存设置即可。

验证扩展是否生效

你可以在服务器上创建一个临时的PHP文件(比如命名为check_calendar.php),内容如下:

<?php phpinfo(); ?>

通过浏览器访问这个文件,搜索「calendar」关键词,如果能看到该扩展的详细配置信息,就说明已经启用成功了,此时再运行你的项目就不会出现那个错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:33:17