ERRO HTTP 500 ao executar no servidor Linux?

ERRO HTTP 500 ao executar no servidor Linux?

Eu tenho esse código PHP para importar excel para mysql usando PhpSpreadsheet no xampp. Este código está OK quando executado em ambiente Windows, mas se eu o hospedei em um servidor Linux (Ubuntu 22.04) usando XAMPP Linux, recebi um erro "HTTP ERROR 500". Instalei todos os pacotes e extensões necessários para o PhpSpreadsheet com base aqui na documentação do phpspreadsheet.readthedocs.io. Se este erro for do lado do servidor, o que devo fazer? Por favor ajude

Estes são meus códigos para meu arquivo de importação

compositor.json

{
"name": "mark/import1",
"autoload": {
    "psr-4": {
        "Mark\\Import1\\": "src/"
    }
},
"authors": [
    {
        "name": "mark"
    }
],

 "require": {
    "phpoffice/phpspreadsheet": "^1.28"
},
"config": {
    "platform": {
        "php": "8.1"
    }
}
}

código de importação

<?php
 $con = mysqli_connect('localhost','root','','db_import');

 require 'vendor/autoload.php';

 use PhpOffice\PhpSpreadsheet\Spreadsheet;
 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

  if(isset($_POST['save_excel_data']))
  {
   $fileName = $_FILES['import_file']['name'];
   $file_ext = pathinfo($fileName, PATHINFO_EXTENSION);

   $allowed_ext = ['xls','csv','xlsx'];

  if(in_array($file_ext, $allowed_ext))
  {
    $inputFileNamePath = $_FILES['import_file']['tmp_name'];
    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileNamePath);
    $data = $spreadsheet->getActiveSheet()->toArray();

foreach($data as $row)
{
            $fullname = $row['0'];
            $email = $row['1'];
            $phone = $row['2'];
            $course = $row['3'];
    
    $studentQuery = "INSERT INTO students (fullname,email,phone,course) 
                            VALUES('$fullname','$email','$phone','$course')";
            $result = mysqli_query($con, $studentQuery);
            $msg = true;    
}
 }
 }

informação relacionada