ich ein sehr seltsames Problem in meiner PHP-Umgebung bekam Imagick mit:PHP Imagick des setFont Verfahren zu lange dauern Zeit auszuführen
Meine Umgebung ist wie folgt:
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
Und die Methode setFont von Imagick wird Die Kosten sind zu lang, um ausgeführt zu werden (und erhalten sogar das Standard-Zeitlimit von 30 Sekunden bei der Ausführung).
Der Code ist wie folgt:
<?php
$img = new Imagick();
$img->setFont("./SpicyRice.ttf");
echo "Done";
Und der Code $img->setFont("./SpicyRice.ttf")
stecken wird.
Kein Fehler wird geworfen, PHP hängen nur bei dieser Methode, und Timeout der Standard 30 Sekunden der Ausführung.
Gibt es jemanden, der darüber irgendwelche Gedanken hat? This ist die Schriftartendatei, die ich verwendet habe.
Es ist wahrscheinlich, dass ein Systemaufruf fehlschlägt oder "stecken bleibt". Wenn das auf meiner Maschine wäre, würde ich versuchen, es mit etwas wie "Dtruss" zu untersuchen. Ich denke, das Ausführen von 'dtruss php foo.php' sollte die Systemaufrufe anzeigen, die einen Hinweis liefern könnten. – Danack
@Danack, und es ist sogar seltsam für mich jetzt, ich habe versucht, den PHP durch lldb zu laufen, und zum ersten Mal, es dauerte eine lange Zeit, aber die Anwendung ausgeführt haben, und dann ist dieses Problem in gelöst die Konsolenversion von PHP. Aber für das PHP Apache2-Modul funktioniert es immer noch nicht, und ich weiß nicht, wie kann ich dafür streiten, haben Sie irgendwelche Vorschläge? – guitarpoet
Strace oder Dtruss kann an einen laufenden Prozess anhängen https://8thlight.com/blog/colin-jones/2015/11/06/dtrace-even-better-than-strace-for-osx.html Obwohl möglicherweise nur das überprüfen Dateiberechtigungen für alles, einschließlich temporäre Verzeichnisse auf dem Server. – Danack