Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

exec et php

82 réponses
Avatar
nicolas.pechon
Bonjour,

J'ai un petit soucis avec la fonction exec d'un script php.

le script suivant ne fonctionne pas:
<?php
exec("pdflatex fichier.tex");
?>

Je soupçonne un problème de configuration d'où ma question ici.

En effet, ce script fonctionne sur un autre ordinateur.

Je précise que taper pdflatex fichier.tex dans un shell fonctionne
parfaitement.

De même:
<?php
exec('ping -c 3 127.0.0.1', $reponse);¶
print_r($reponse);
?>

Fonctionne.

Ça doit être un truc tout bête, mais je ne trouve pas. :-(

Merci d'avance de vous pencher sur mon problème ou de d'indiquer si je
ne suis pas au bon endroit ou je pourrais poser ma question.

10 réponses

1 2 3 4 5
Avatar
Philippe Gras
Le 10 nov. 2015 à 08:57, a écrit :

Bonjour,

J'ai un petit soucis avec la fonction exec d'un script php.

le script suivant ne fonctionne pas:
<?php
exec("pdflatex fichier.tex");
?>

Je soupçonne un problème de configuration d'où ma question ici.



Dans le php.ini, il existe une instruction pour interdire certaines fonctions
qui accèdent au serveur. La fonction exec en fait partie.

Je crois que c'est "disable functions = le nom des fonctions à désactiver".
Avatar
nicolas.pechon
Le 2015-11-10 11:32, Philippe Gras a écrit :
Le 10 nov. 2015 à 08:57, a écrit :

Bonjour,

J'ai un petit soucis avec la fonction exec d'un script php.

le script suivant ne fonctionne pas:
<?php
exec("pdflatex fichier.tex");
?>

Je soupçonne un problème de configuration d'où ma question ici.



Dans le php.ini, il existe une instruction pour interdire certaines
fonctions
qui accèdent au serveur. La fonction exec en fait partie.

Je crois que c'est "disable functions = le nom des fonctions à
désactiver".




Effectivement, j'ai enlevé l'option: pcntl_exec

redémarrer apache2, mais rien n'y fait. :-(
Avatar
Philippe Gras
Le 10 nov. 2015 à 12:26, a écrit :

Le 2015-11-10 11:32, Philippe Gras a écrit :
Le 10 nov. 2015 à 08:57, a écrit :
Bonjour,
J'ai un petit soucis avec la fonction exec d'un script php.
le script suivant ne fonctionne pas:
<?php
exec("pdflatex fichier.tex");
?>
Je soupçonne un problème de configuration d'où ma question ici.


Dans le php.ini, il existe une instruction pour interdire certaines fonctions
qui accèdent au serveur. La fonction exec en fait partie.
Je crois que c'est "disable functions = le nom des fonctions à désactiver".




Effectivement, j'ai enlevé l'option: pcntl_exec

redémarrer apache2, mais rien n'y fait. :-(



Ce n'est pas la bonne fonction : pcntl-exec != exec ;

http://php.net/manual/fr/function.pcntl-exec.php
http://php.net/manual/fr/function.exec.php=
Avatar
pmenier
Le 10/11/2015 08:57, a écrit :
Bonjour,

J'ai un petit soucis avec la fonction exec d'un script php.

le script suivant ne fonctionne pas:
<?php
exec("pdflatex fichier.tex");
?>

Je soupçonne un problème de configuration d'où ma question ici.

En effet, ce script fonctionne sur un autre ordinateur.

Je précise que taper pdflatex fichier.tex dans un shell fonctionne
parfaitement.

De même:
<?php
exec('ping -c 3 127.0.0.1', $reponse);¶
print_r($reponse);
?>

Fonctionne.

Ça doit être un truc tout bête, mais je ne trouve pas. :-(

Merci d'avance de vous pencher sur mon problème ou de d'indiquer si je
ne suis pas au bon endroit ou je pourrais poser ma question.





Salut

Et en mettant le chemin absolu vers pdflatex ?

Patrick
Avatar
nicolas.pechon
Le 2015-11-10 13:00, Philippe Gras a écrit :
Le 10 nov. 2015 à 12:26, a écrit :
Effectivement, j'ai enlevé l'option: pcntl_exec

redémarrer apache2, mais rien n'y fait. :-(



Ce n'est pas la bonne fonction : pcntl-exec != exec ;

http://php.net/manual/fr/function.pcntl-exec.php
http://php.net/manual/fr/function.exec.php



Oui, je m'en doutais bien. mais, j'ai fait le test vu l'absence de exec
dans disable functions

J'avance un peu.

J'ai fait:
<?php¶

$command = '/usr/bin/pdflatex test.tex';¶
$output = exec($command);¶
exec($command, $output, $retval);¶
var_dump($output);¶
?>

A la fin du fichier j'ai:

" [106]=> string(75)
"[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
<../../images/3.png>]" [107]=> string(28) "(./test.aux) )" [108]=>
string(52) "(see the transcript file for additional information)"
[109]=> string(79) "!pdfTeX error: /usr/bin/pdflatex (file tcti1200):
Font tcti1200 at 600 not foun" [110]=> string(1) "d" [111]=> string(55)
" ==> Fatal error occurred, no output PDF file produced!" }


Mais, je sais pas trop quoi en faire. Surtout que dans une console, un
pdflatex test.tex fonctionne
Avatar
nicolas.pechon
Le 2015-11-10 13:27, pmenier a écrit :
Le 10/11/2015 08:57, a écrit :
Bonjour,

J'ai un petit soucis avec la fonction exec d'un script php.

le script suivant ne fonctionne pas:
<?php
exec("pdflatex fichier.tex");
?>

Je soupçonne un problème de configuration d'où ma question ici.

En effet, ce script fonctionne sur un autre ordinateur.

Je précise que taper pdflatex fichier.tex dans un shell fonctionne
parfaitement.

De même:
<?php
exec('ping -c 3 127.0.0.1', $reponse);¶
print_r($reponse);
?>

Fonctionne.

Ça doit être un truc tout bête, mais je ne trouve pas. :-(

Merci d'avance de vous pencher sur mon problème ou de d'indiquer si je
ne suis pas au bon endroit ou je pourrais poser ma question.





Salut

Et en mettant le chemin absolu vers pdflatex ?

Patrick



J'ai effectivement fait le test. Pensant a un problème avec la variable
d’environnement PATH. Mais, ce n'est pas cela.
Avatar
Eric Degenetais
A la fin du fichier j'ai:

" [106]=> string(75) "[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex .map} <../../images/3.png>]" [107]=> string(28) "(./test.aux) )" [108]= > string(52) "(see the transcript file for additional information)" [109] => string(79)



"!pdfTeX error: /usr/bin/pdflatex (file tcti1200): Font tcti1200 at
600 not foun" [110]=> string(1) "d" [111]=> string(55) " ==> Fatal
error occurred, no output PDF file produced!"

}

Il dit pourquoi il plante: il ne trouve pas la font qu'il est censé
utiliser. Donc la question est: comment pdflatex trouve-t'il ses font
(ce que j'ignore) et en quoi est-ce que ça peut être différe nt pour le
processus apache?
______________
Éric Dégenètais
Henix

http://www.henix.com
http://www.squashtest.org
Avatar
nicolas.pechon
Le 2015-11-10 14:33, Eric Degenetais a écrit :
A la fin du fichier j'ai:

" [106]=> string(75)
"[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
<../../images/3.png>]" [107]=> string(28) "(./test.aux) )" [108]=>
string(52) "(see the transcript file for additional information)"
[109]=> string(79)



"!pdfTeX error: /usr/bin/pdflatex (file tcti1200): Font tcti1200 at
600 not foun" [110]=> string(1) "d" [111]=> string(55) " ==> Fatal
error occurred, no output PDF file produced!"

}

Il dit pourquoi il plante: il ne trouve pas la font qu'il est censé
utiliser. Donc la question est: comment pdflatex trouve-t'il ses font
(ce que j'ignore) et en quoi est-ce que ça peut être différent pour le
processus apache?



Bonjour,
Ne trouvant toujours pas de solution, je me permet un petit UP. Si
quelqu'un a une piste a me proposer...

Merci d'avance
Avatar
Fabrice Regnier
'lut,

Ne trouvant toujours pas de solution, je me permet un petit UP. Si
quelqu'un a une piste a me proposer...


Comme le message d'erreur te dit qu'il n'a pas trouvé la font qui va
bien, est-ce possible de lui coller en paramètre le chemin+fichier de la
font ?

f.
Avatar
Steve Fouchet
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--Xa6Lj6NmXxT9o10gilBViIQu8uRpp6cGo
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Bonjour,

Si j'ai bien suivi, lorsque tu lances la commande dans un shell, tu le
fais depuis ton compte utilisateur.
As tu essayé de lancer ta commande depuis un shell en tant "www-data " ?
Ca te permettra déjà d'identifier si le problème viens des permissions
du compte utilisateur, ou de ta conf apache/php

++
Steve


Le 20/11/2015 10:17, Fabrice Regnier a écrit :
'lut,

Ne trouvant toujours pas de solution, je me permet un petit UP. Si
quelqu'un a une piste a me proposer...


Comme le message d'erreur te dit qu'il n'a pas trouvé la font qui va
bien, est-ce possible de lui coller en paramètre le chemin+fichier de la
font ?

f.





--Xa6Lj6NmXxT9o10gilBViIQu8uRpp6cGo
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iL4EAREKAGYFAlZPG2lfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3Bl
bnBncC5maWZ0aGhvcnNlbWFuLm5ldEU2QThCQ0U4Rjc4OTM4OTVBREI4Qjg1REI5
NDI5NUM1OURFMzk0NjQACgkQuUKVxZ3jlGQEyAD/eEInVjdGqD5UkRLzJ3ajuksi
4PMNVDZUfGUgjnhNAzgBALDw7igFH2irSqnEN3Xrj7moMk0qhN9XiwtcvtYSkYdC
=6IzM
-----END PGP SIGNATURE-----

--Xa6Lj6NmXxT9o10gilBViIQu8uRpp6cGo--
1 2 3 4 5