2014-01-20 26 views
3

我得到了一个新的mac,并安装了与我旧的一样的xampp web服务器。 一切都被罚款,除非我调用Java文件:在java jar文件输出的php exec是空的阵列

$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

我遇到了运行exec(“/ usr/bin/php /path/to/file.php”)的问题。我得到5的结果,它不运行。我已经尝试了很多东西,仍然在靠墙撞我的头。在macbook air上也使用XAMPP for PHP 5.3。 – Ken

+0

好吧,看来xampp会设置DYLD_LIBRARY_PATH =“/ Applications/XAMPP/xamppfiles/lib”,这会导致很多问题。还没有想出如何解决它。 – Ken

回答

3

编辑:
请勿使用下面的解决方案。如预期的那样,它最终会破裂。当我尝试启动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");

HTH

+0

干得好肯!我希望这可以帮助别人。我耗尽了时间,只是报废了xampp,并学会了如何在Mac上从头构建Web服务器。花了几个小时,但它的工作奇妙,没有腹胀! – MrBob

+0

是的,我认为开槽xampp可能是更好的解决方案 – Ken

+0

我把这个答案放在调用exec之前运行。 http://stackoverflow.com/questions/24941078/ffmpeg-and-php-on-mac-doest-work –