tp框架导出excel的时候报错:unexcepted identifier “Closure“,excepting variable

记录一个简单的错误。

背景

用的是PhpOffice/PhpSpreadsheet

在本地环境下是可以正常导出excel的。但是线上就不行。

就会报错unexcepted identifier "Closure",好像是不能用匿名函数。

首先

本地可以正常导出,然后服务器上不可以。看了各种日志。php日志、nginx日志、tp框架的日志 。就是找不到毛病。

然后开始排查php扩展,php本地的扩展,在服务器上都安装了。

还各种修改文件夹的权限,还是没用。

在php.ini中还禁用函数,但是都没有作用。

我连代码都重新clone的一遍。

解决

最后屈服了,把服务器上的php8.0换成了php8.2,(和本地环境一致。)然后就OK了。

需要注意的是:

宝塔环境下,不能单纯的切换php版本。要把nginx的配置文件也要改掉!

php 复制代码
location ~ \.php$ {
        fastcgi_pass unix:/tmp/php-cgi-82.sock;  # 改为与PHP-FPM配置一致
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

        # ThinkPHP 专用参数
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
相关推荐
ServBay4 小时前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954486 小时前
CTF 伪协议
php
BingoGo3 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack3 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo4 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack4 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack6 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理6 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php