PHPExcel : Erreur 500 sous Linux
Bonjour,
J'utilise PHPExcel pour exporter une table et tracer un calendrier avec les infos.
Ce script fonctionne bien sous windows server, IIS 10, PHP 5.6.24, memory_limit à 256M et max_execution_time à 300 secondes en exportant plus de 2000 lignes sans problèmes. Après 3 minutes le fichier est généré sur le serveur local
Le même script hébergé sur un serveur linux, PHP 5.6.30, memory_limit par défaut 256M aussi mais essayé à 1024M via ini_set, max_execution_time à 50000 secondes. En exportant 50 lignes ça fonctionne parfaitement mais lorsque que j'exporte plus de 1000 lignes, j'ai le droit à une erreur 500.
Ci dessous un extrait du script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| // Connexion mysql
try
{
$bdd = new PDO (......
}
....
include('../../library/phpexcel/Classes/PHPExcel.php');
include('../../library/phpexcel/Classes/PHPExcel/Writer/Excel2007.php');
$classeur = new PHPExcel;
$classeur->getProperties()->setCreator($_SESSION['prenom'] . ' ' . $_SESSION['nom']);
$classeur->getProperties()->setLastModifiedBy($_SESSION['prenom'] . ' ' . $_SESSION['nom']);
$feuille = $classeur->createSheet();
$feuille->setTitle('Couleur');
$feuille->setAutoFilter('A3:K3');
$feuille->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 3);
$feuille->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$feuille->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3);
$feuille->getPageSetup()->setPrintArea('A:AM');
// Met les entêtes
$feuille->setCellValue('A3','xxx');
$feuille->setCellValue('B3','xxx');
$feuille->setCellValue('C3','xxx'); $feuille->getColumnDimensionByColumn(2)->setWidth(10);
.....
$feuille->setCellValue('K3','xxx');
// Met les colonnes entêtes grises
$feuille->getStyle('A1:L3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$feuille->getStyle('A1:L3')->getFill()->getStartColor()->setARGB('C8C8C8');
// Met les données
$ligne = 4;
$reponse = $bdd->query($requete_sql);
while($donnees = $reponse->fetch())
{
// Colonnes de données statiques
// Met la ligne en grise
$feuille->getStyle('A' . $ligne . ':K' . $ligne)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$feuille->getStyle('A' . $ligne . ':K' . $ligne)->getFill()->getStartColor()->setARGB('C8C8C8');
$feuille->setCellValueByColumnAndRow(0, $ligne, $donnees[0]);
$feuille->setCellValueByColumnAndRow(1, $ligne, $donnees[1]);
.....
}
$classeur->setActiveSheetIndex(0);
$writer = new PHPExcel_Writer_Excel2007($classeur);
$fichier_excel = 'Calendrier.xlsx';
$writer->save($fichier_excel);
echo '<a href="' . $fichier_excel . '" download="' . $fichier_excel . '">Télécharger ' . $fichier_excel . '</a>'; |
En vous remerciant,