WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
WAMP : php ok en ligne de commande mais pas via Apache
Envoyé par: mouskam (---.w193-253.abo.wanadoo.fr)
Date: 15 January 2007 à 16:50

Bonjour,

J'ai crée un script PHP pour générer dynamiquement des PDF.

Les PDF sont générés en utilisant la librairie PDFtk. Le PHP effectue 3 appels exec().
Les 2 premiers exec() génèrent chacun 1 PDF temporaire, dynamiquement. Le 3e exec() (passthru(), en fait) colle ces 2 PDF temporaires à un 3e qui existe deja.

Ce script s'execute correctement en ligne de commande DOS ("php pdf_maker.php 1715" pex) : les fichiers temporaires PDF sont générés et la sortie standard recupere bien un PDF.
Par contre, si j'appelle ce script via un browser, les fichiers temporaires PDF ne sont pas générés et la page reste vide.

Le serveur Apache 2.0 (PHP 5.20) tourne en tant que service sous un compte systeme.

Le code PHP est le suivant :

<?php
ini_set('display_errors', 1);

if ( empty($_REQUEST['ref_formation']) )
$ref_formation = intval($_SERVER['argv'][1]);
else
$ref_formation = intval($_REQUEST['ref_formation']);

if ( !empty($ref_formation) ) {
try {
require('../admin/include/db_inc.php');
$qry_form = "SELECT fichier from ac_formations WHERE id_formation=$ref_formation";
$rs_form = mysql_query($qry_form);
$row_form = mysql_fetch_array($rs_form);
$nom_fichier = ($row_form['fichier']);
mysql_free_result($rs_form);
mysql_close($link);
//header("Content-type: text/html; charset=iso-8859-1"winking smiley;
header("Content-type: application/pdf"winking smiley;
header("Content-Disposition: inline; filename=$nom_fichier"winking smiley;

$html2ps_path = 'perl "C:/Program Files/ANTWebPack/HTML2PS/bin/html2ps.pl"';
$path_fichier = '"upload/'.$nom_fichier.'"';
//$local_path = 'D:/WebFafiec/content/MINI_SITE/actions_co';

//echo($path_fichier);
//exec("d:"winking smiley;
//exec("cd /Webfafiec/content/MINI_SITE/actions-co"winking smiley;
//exec("dir tmp > toto.dir"winking smiley;
//passthru("php page_garde.php $ref_formation | perl -X /usr/bin/html2ps -f html2ps.conf | ps2pdfwr -sPAPERSIZE=a4 - - | pdftk - background modele_page_garde.pdf output - | pdftk - \"upload/$nom_fichier\" output -"winking smiley;

# page de garde
$tmp_page_garde = "tmp/modele_page_garde_$ref_formation.pdf";
exec("php page_garde.php $ref_formation | $html2ps_path -i 0.6 -f html2ps_garde.conf | ps2pdfwr -dAutoFilterColorImages#false -dColorImageFilter#/FlateEncode -sPAPERSIZE#a4 - $tmp_page_garde"winking smiley;

// exec("php $local_path/page_garde.php $ref_formation | $html2ps_path -i 0.6 -f $local_path/html2ps_garde.conf | ps2pdfwr -dAutoFilterColorImages#false -dColorImageFilter#/FlateEncode -sPAPERSIZE#a4 - $tmp_page_garde"winking smiley;
# modele page
$tmp_modele_entete = "tmp/modele_entete_$ref_formation.pdf";
exec("php entete.php $ref_formation | $html2ps_path -i 0.6 -f html2ps_entete.conf | ps2pdfwr -dAutoFilterColorImages#false -dColorImageFilter#/FlateEncode -sPAPERSIZE#a4 - $tmp_modele_entete"winking smiley;
#
passthru("php couts_dates.php $ref_formation | $html2ps_path -i 0.6 -f html2ps_couts.conf | ps2pdfwr -dAutoFilterColorImages#false -dColorImageFilter#/FlateEncode -sPAPERSIZE#a4 - - | pdftk - background $tmp_modele_entete output - | pdftk $tmp_page_garde $path_fichier - output -"winking smiley;

# suppression des modeles temp
//unlink($tmp_page_garde);
//unlink($tmp_modele_entete);
}
catch (Exception $e) {
die($e);
}
} # fin if ref_formation
?>

Ca fait quelques jours que je m'arrache les cheveux...
Si quelqu'un a une piste, je suis preneur...

winking smiley
Mouskam

Options: Répondre•Citer ce Message
Re: WAMP : php ok en ligne de commande mais pas via Apache
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 15 January 2007 à 17:49

mouskam a écrit:

> Ce script s'execute correctement en ligne de commande DOS ("php
> pdf_maker.php 1715" pex) : les fichiers temporaires PDF sont
> générés et la sortie standard recupere bien un PDF.
> Par contre, si j'appelle ce script via un browser, les fichiers
> temporaires PDF ne sont pas générés et la page reste vide.

La ligne ce commande (cli) utilise Wamp/php/php.ini

Les scripts utilisent Wamp/Apache2/bin/php.ini

Vérifier également qu'il n'existe pas un fichier php.ini dans Windows.

Voir du côté des diférences entre ces deux fichiers.



Message édité (15-01-2007 17:51)

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: WAMP : php ok en ligne de commande mais pas via Apache
Envoyé par: mouskam (---.w193-253.abo.wanadoo.fr)
Date: 18 January 2007 à 09:48

Merci Otomatic...

En fait, c'etait un conflit entre le convert.exe de windows et celui d'ImageMagick.

Les PATH etaient différents (dans l'ordre des repertoires) entre les 2 users (ligne de commande et utilisateur Apache)...

Donc, selon le mode d'acces, le script faisait appel à l'un ou l'autre. Dans un cas, ca marche et pas dans l'autre...

Mouskam

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP