我写了一个简单的php文件 convert_pdf_to_single_continuous_long_image.php ,它的内容是:
$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);
如果我运行下面的命令,它就可以了!
bash-3.2# php convert_pdf_to_single_continuous_long_image.php
但如果我通过浏览器运行它,则失败并返回
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
我的nginx用户和组都是“_www”,是不是nginx没有读取pdf文件的权限?但包含pdf文件的目录“/ Users / Bruce / www / pdf_files”的权限是:
drwxrwxrwx 8 Bruce staff 272 4 3 16:43 pdf_files
我google并找到了一些类似的问题,有些回答是因为我没有安装ghostscript,但是我安装了它,而且我把它放到了系统路径的路径: enter image description here
我也删除了ghostscript,然后通过“brew istall ghostscript”重新安装它
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
对不起中文“下午”的意思是p.m。
我试图将php-fpm的用户和组设置为root:wheel,但是失败了,它告诉我我不能以root身份运行php-fpm。
所以我真的不知道发生了什么,我想问题是关于许可。希望有人可以帮助我。非常感谢你!
答案 0 :(得分:0)
有几个问题......
第1期
您似乎在Mac上使用自制程序。 自制软件将/usr/local/bin
中的符号链接指向Cellar中各种版本的应用程序。想法是你使用:
/usr/local/bin/convert
而不是
/usr/local/Cellar/imagemagick/7.0.5-4/bin/convert
因此,当您升级软件包时,您不必更改所有版本号。
第2期
当你检查PATH时,我认为你是这样做的,而不是检查用户_www
的路径。