j'ai eu un problème très bizarre dans mon environnement PHP en utilisant Imagick:méthode setfont PHP Imagick prendre trop de temps pour exécuter
Mon environnement est comme ceci:
Darwin 16.4.0 Darwin Kernel Version 16.4.0: Thu Dec 22 22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64 x86_64
PHP 7.0.16 (cli) (built: Feb 16 2017 22:57:49) (NTS)
imagick module version => 3.4.3RC4
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 6.9.7-6 Q16 x86_64 2017-02-01 http://www.imagemagick.org
Imagick using ImageMagick library version => ImageMagick 6.9.7-7 Q16 x86_64 2017-02-09 http://www.imagemagick.org
Et la méthode setFont de Imagick sera Coût trop long à exécuter (et même obtenir le délai par défaut de 30 secondes en exécution).
Le code est comme ceci:
<?php
$img = new Imagick();
$img->setFont("./SpicyRice.ttf");
echo "Done";
Et le code $img->setFont("./SpicyRice.ttf")
va se coincer.
Aucune erreur n'est levée, PHP se bloque à cette méthode et expire par défaut les 30 secondes d'exécution.
Y a-t-il quelqu'un à qui penser? This est le fichier de police que j'ai utilisé.
Il est probable que certains appels système échouent, ou "se coincent". Si c'était sur ma machine, j'essaierais de l'examiner avec quelque chose comme 'dtruss'. Je pense que lancer 'dtruss php foo.php' devrait montrer les appels système en cours, ce qui pourrait fournir un indice. – Danack
@Danack, et c'est encore bizarre pour moi maintenant, j'ai essayé de lancer le php via lldb, et pour la première fois, ça a pris du temps, mais l'application est lancée, et puis ce problème est résolu la version console de PHP. Mais pour le module PHP à travers Apache2, ça ne marche toujours pas, et je ne sais pas comment je peux en discuter, avez-vous des suggestions? – guitarpoet
strace ou dtruss peut attacher à un processus en cours https://8thlight.com/blog/colin-jones/2015/11/06/dtrace-even-better-than-strace-for-osx.html Bien que peut-être juste vérifier la autorisations de fichiers pour tout, y compris les répertoires temporaires sur le serveur. – Danack