2017-04-03 3 views
0

Ich habe eine einfache PHP-Datei convert_pdf_to_single_continuous_long_image.php, schrieb und es ist Inhalt ist:php exec, konvertieren imagemagick pdf zu jpg Rückkehr Fehler

$shell = '/usr/local/Cellar/imagemagick/7.0.5-4/bin/convert /Users/Bruce/www/pdf_files/sample.pdf -quality 500 -units pixelspercentimeter -density 500 -fill white -alpha remove -append /Users/Bruce/www/pdf_files/sample.png 2>&1'; 
@exec($shell,$output,$return_var); 
var_dump($output); 

wenn ich den Befehl unten lief, es funktioniert!

bash-3.2# php convert_pdf_to_single_continuous_long_image.php

aber wenn ich es durch Browser lief, es scheiterte und gibt

array (size=1) 
0 => string 'convert: no images defined 
/Users/Bruce/www/pdf_files/sample.png' @ 
error/convert.c/ConvertImageCommand/3254.' (length=110) 
who am I--->_www 

enter image description here

sowohl meine nginx Benutzer- und Gruppen sind "_www", ist, dass nginx keine Erlaubnis lese die pdf-Datei? aber die Erlaubnis des Verzeichnisses „/ Users/Bruce/www/PDF_Files“, die die PDF-Datei enthält, ist:

drwxrwxrwx 8 Bruce staff  272 4 3 16:43 pdf_files 

Ich habe Google und einige ähnliche Fragen finden, und einige Antwort sagte, ist, weil ich didn‘ t installieren ghost, aber ich es installieren, und ich habe es Weg zum System PFAD: enter image description here

und ich auch die ghost entfernen und neu installieren sie es dann durch „Gebräu istall ghost“

nginx:

bash-3.2# ps aux | grep nginx 
nobody    299 0.0 0.0 2503496 1116 ?? S 11:44下午 
0:06.26 nginx: worker process 
nobody    298 0.0 0.0 2503624 1740 ?? S 11:44下午 
0:03.38 nginx: worker process 
nobody    296 0.0 0.0 2503496 1128 ?? S 11:44下午 
0:06.27 nginx: worker process 
nobody    294 0.0 0.0 2503624 1896 ?? S 11:44下午 
0:02.97 nginx: worker process 
root    68 0.0 0.0 2503496 4860 ?? Ss 11:44下午 
0:00.02 nginx: master process /usr/local/opt/nginx/bin/nginx -g daemon off; 


bash-3.2# ps aux | grep php-fpm 
_www    45743 0.0 0.1 2560356 9992 ?? S  1:48下午 
0:00.22 /usr/local/opt/php70/sbin/php-fpm --fpm-config 
/usr/local/etc/php/7.0/php-fpm.conf 
_www    45720 0.0 0.1 2560356 10288 ?? S  1:47下午 
0:00.49 /usr/local/opt/php70/sbin/php-fpm --fpm-config 
/usr/local/etc/php/7.0/php-fpm.conf 
_www    309 0.0 0.1 2560356 10540 ?? S 11:44下午 
0:01.94 /usr/local/opt/php70/sbin/php-fpm --fpm-config 
/usr/local/etc/php/7.0/php-fpm.conf 
root    107 0.0 0.0 2517076 7356 ?? Ss 11:44下午 
0:01.80 /usr/local/opt/php70/sbin/php-fpm --fpm-config 
/usr/local/etc/php/7.0/php-fpm.conf 

Es tut mir leid, das chinesische Wort "下午" bedeutet p.m.

Ich habe versucht, den Benutzer und die Gruppe von php-fpm zu root: wheel, aber fehlgeschlagen, es sagt mir, dass ich php-fpm nicht als root ausführen konnte.

Also ich weiß wirklich nicht, was los ist, ich denke, das Problem ist über die Erlaubnis.Hope jemand kann mir helfen. Vielen Dank!

+0

warum Sie nicht einfach [imagemagick] (http://php.net/manual/en/book.imagick.php) php Erweiterung verwenden? – hassan

+0

Haben Sie versucht, eine einfache PDF-Datei in den gleichen Ordner wie den PHP-Code zu konvertieren? z.B.convert sample.pdf sample.jpg Aus Interesse Version 7 von Imagemagick ist die bevorzugte Methode, magick nicht konvertieren. Wenn Sie ImageMagick mit Legacy installiert haben? Programme konvertieren sollte noch funktionieren. – Bonzo

+0

vielen Dank für Ihre Jungs Vorschlag, ich werde es versuchen, aber ich weiß immer noch nicht, warum ich nicht mit exec –

Antwort

0

Ein paar Fragen ...

Ausgabe 1

Sie erscheinen Homebrew auf einem Mac zu verwenden. Homebrew setzt symbolische Links in /usr/local/bin verweist auf die verschiedenen Versionen von Anwendungen im Keller. Die Idee ist, dass Sie verwenden:

/usr/local/bin/convert 

und nicht

/usr/local/Cellar/imagemagick/7.0.5-4/bin/convert 

, so dass, wenn Sie ein Paket aktualisieren, müssen Sie nicht alle Zahlen Version ändern.

Ausgabe 2

Wenn Sie den Pfad überprüft, ich glaube, Sie, um sich selbst getan hat, anstatt den Pfad des Benutzers _www überprüfen.

+0

für Issue1 laufen kann: 'Ihnen sehr für Ihren Rat mit symbolischen Links danken/usr/local/bin, ich weiß nicht, diese before.' für Issue2: 'ich habe versucht, das Eigentum und die Gruppe "/ Users/Bruce/www/PDF_Files" zu ändern, die die pdf-Datei enthält, aber es ergibt sich der gleiche Fehler! ' ' bash-3.2 # chown -R _www: _www.pdf_files bash-3.2 # ls -l | grep pdf_files drwxrwxrwx 8 _wwwww 272 4 3 16:43 pdf_files' –

Verwandte Themen