我正在尝试使用wkhtmltopdf可执行文件将一些html转换为pdf。我只是在我的mac上测试它,如果我通过终端运行可执行文件,它会正常工作。如果我使用php-shell_exec运行它,我会得到以下错误:
dyld:未加载库:/usr/lib/libxml2.2.dylib引用发件人:/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices原因:库版本不兼容:DictionaryServices需要版本10.0.0或更高版本,但libxml2.2.dylib提供9.0.0版
如果我通过php吐出我正在使用的cmd,我可以运行它,它在终端中运行良好。
我认为这是一个路径问题,所以我呼应了我的用户路径,这与avialble到php的路径不同,所以我之前将其添加到命令中:
PATH=$PATH:/usr/local/sbin:/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/opt/subversion/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin; ./wkhtmltopdf-0.9.9-OS-X.i368 ./'newxhtml.html' /tmp_pdf.pdf
有没有想过我可能做错了什么?
谢谢,MS
弄清楚发生了什么。
第一个故障排除我运行命令:
env
从我的终端和我的php脚本。
我在我的php脚本中注意到它有以下明确设置:
DYLD_LIBRARY_PATH=/some/PATH
但在终端中,这个值根本没有设置。所以我所做的只是添加:
DYLD_LIBRARY_PATH=";
这是我的最后命令:DYLD_LIBRARY_PATH="/wkhtmltopdf-0.9.9-OS-X.i368./'newxhtml.html'./tmp_pdf.pdf 2>&1
我只是通过shell_exec运行它。