2013-07-04 1 views
0

다음 PHP 코드의 작품에서 이상한 행동을 보여주고 난 출력을 얻을 :호출 shell_exec PHP는

<?php 

echo 'hello world'; 
echo shell_exec('ls -la'); 

?> 

// Output 
hello worldtotal 2064 drwxrwxrwx. 3 root root 4096 Jul 4 10:26 . drwxr-xr-x. 4 root root 4096 Jul 4 10:17 .. -rw-rw-r--. 1 arun arun 2089447 Jul 3 11:09 cakephp-cakephp-2.3.6-0-gd10df32.zip -rw-r--r--. 1 root root 32 Jun 18 18:01 info.php drwxrwxrwx. 7 arun arun 4096 Jul 3 12:23 nykkos -rw-r--r--. 1 arun arun 76 Jul 4 10:26 test.php 

다음 코드는 작동하지 않습니다

<?php 

echo 'hello world'; 
echo shell_exec("java -jar /var/www/html/nyk/app/webroot/Converter.jar $id"); 

?> 

은 그냥 빈 화면을 보여줍니다. 위의 PHP 코드에서 사용되는 간단한 java -version도 빈 화면을 제공합니다. '안녕하세요 세상'조차도 인쇄되지 않습니다.

위의 Java 명령은 터미널에서 문제없이 작동합니다. 내 OS는 페도라입니다.

이상한 행동의 원인은 무엇이며 어떻게 극복 할 수 있습니까?

도움을 주시면 감사하겠습니다.

+0

이것에 대한 아이디어가 있습니까? – user264953

+0

사용 권한 문제와 비슷합니다. – devnull

+0

아니요 .. 허용은 ​​777 – user264953

답변

1

OSX에서 MAMP를 사용하여이 문제가 발생했습니다. 나는 그것이 같은 문제 여야한다고 생각한다. MAC에서 MAMP/Library/bin/envvars에있는 envvars 파일을 열어보십시오. if와 else의 네 줄을 주석 처리하십시오. 다음과 같이 표시됩니다.

#if test "x$DYLD_LIBRARY_PATH" != "x" ; then 
# DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" 
#else 
# DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib" 

Apache를 재설정하는 것을 잊지 마십시오. 그것은 나를 위해 잘 작동합니다! 나는 당신이 그것을 즐길 수 있기를 바랍니다. 좋은 행운!