我有一个新的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
请帮助!!我在这里已经完成了与此问题类似的所有主题,并且无法在互联网上找到任何内容! GNH
答案 0 :(得分:3)
修改强>
不要使用下面的解决方案。正如预期的那样,它最终会破裂。当我试图启动apache服务器时,我终于破了,抛出了dyld错误。它根本不会开始。不知道为什么它之前有效,现在没有,但没关系。只需放弃XAMPP,并按照这些说明启动自己的堆栈:http://jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/
原文回答:
好吧,我有一个可行的解决方案,虽然我知道它不是最安全的远射。
这是什么了:
DYLD_LIBRARY_PATH
是一个var,用于修改动态链接库查找lib的方式。显然,许多开发人员认为您的软件不应该使用此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
在我将每个库移动到无法找到它的名称后,我重新编写了该脚本。它会在另一个lib上出错,我会移动它。经过其中一些,它停了下来。在我的XAMPP和Apache部署中,一切似乎都运行良好。
更重要的是,我现在可以成功运行exec("/usr/bin/php -v");
!
HTH