我有一台新的Mac,并安装了与旧Mac相同的xampp Web服务器.
一切都很好,除了我调用java文件时:
$str_exec = "java -jar HelloWorld.jar";
exec($str_exec, $output,$result);
$output现在是一个空array(),并且$result = 5
我已经尝试了绝对路径,所有内容的权限,更改了https.conf中的用户和组(以前我没有做过!)
我发誓一切都没有改变,除了我现在使用的是Macbook Pro而不是播放器.这些文件始终与我们的主服务器文件匹配.错误日志中出现的唯一内容是:
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /Applications/XAMPP/xamppfiles/lib/libJPEG.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
请帮助!!我在这里经历了所有与此问题类似的话题,并且在互联网上找不到任何东西! n
解决方法:
编辑:
不要使用下面的解决方案.最终会如预期的那样破裂.我的机器终于坏了,当我尝试启动apache服务器时抛出了dyld错误.它根本不会开始.不知道为什么它以前有用,现在不起作用,但是没关系.只需放弃XAMPP,然后按照以下说明旋转自己的堆栈:http://jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/
祝好运!
原始答案:
好的,我有一个可行的解决方案,尽管我知道从长远来看它不是最安全的.
这是怎么回事:
DYLD_LIBRARY_PATH是一个变量,可修改动态链接库查找库的方式.显然,许多开发人员认为您的软件不应使用此var. XAMPP可以.
根据一种解决方案,您可以简单地编辑出包含此文件的行. (http://www.pdflib.com/fileadmin/pdflib/pdf/support/PDFlib-in-PHP-HowTo.pdf).
使用编辑器打开xamppfiles / bin / envvars,然后删除设置和导出DYLD_LIBRARY_PATH的行.然后重新启动apache.
但是,这对我不起作用.我还在名为xamppfiles / bin / envvars-std的文件中尝试了相同的操作.还是没用.也许值得一试.
问题是XAMPP库与mac osx库冲突.因此,我只是(有效地)删除了XAMPP库.当然,这破坏了另一个库,但是我继续删除(希望是多余的)XAMPP库,直到它起作用为止.这是我必须要做的:
XAMPP / xamppfiles / lib%sudo mv libjpeg.dylib _changed_libjpeg.dylib
XAMPP / xamppfiles / lib%sudo mv libtiff.dylib _changed_libtiff.dylib
XAMPP / xamppfiles / lib%sudo mv libpng.dylib _changed_libpng.dylib
XAMPP / xamppfiles / lib%sudo mv libiconv.2.dylib _changed_libiconv.2.dylib
XAMPP / xamppfiles / lib%sudo mv libexslt.0.dylib _changed_libexslt.0.dylib
XAMPP / xamppfiles / lib%sudo mv libxml2.2.dylib _changed_libxml2.2.dylib
XAMPP / xamppfiles / lib%sudo mv libxslt.1.dylib _changed_libxslt.1.dylib
将每个库移到找不到它的名称后,我重新运行了脚本.在另一个库上它将出错,而我将其移动.经过几次这些之后,它停止了.在我的XAMPP和Apache部署中,一切似乎仍然运行良好.
更重要的是,我现在可以运行exec(“ /usr/bin/php -v”);成功!
高温超导