2012-02-14 86 views
1

我写了一个bash脚本采取的截图,我想从一个PHP页面启动它:PHP的exec bash脚本

#!/bin/bash 

screenshot="screnshot.png" 
screencapture='/usr/sbin/screencapture -xC' 

if [ `whoami` == 'root' ]; then 
loginpid=`ps -ax | grep [l]oginwindow.app | awk '{print $1}'` 
    launchctl bsexec $loginpid $screencapture $screenshot 
else 
    $screencapture $screenshot 
fi 

当我尝试从CLI它工作正常,但是当它启动我尝试用PHP启动它不起作用:

<?php 
exec("bash /Users/giorgio/Desktop/src.sh");  
?> 

这是什么问题?

编辑:

正如你建议我把剧本到PATH变量eviroment(我已经编辑.bash_profile文件)。 现在我可以直接从CLI启动命令,但从PHP启动它的问题保持不变。

我试着用这些命令,但他们都不似乎工作:

exec("bash /usr/local/bin/screenshot.sh"); 
exec("bash screenshot.sh"); 
exec("screenshot.sh"); 

编辑2:

我试图运行下面的代码来indagate上发生了什么到被调用的脚本:

<?php 
$array = array(); 
$integer; 
exec("bash /usr/local/bin/screenshot.sh 2>&1",$array,$integer);  
echo "<pre>"; 
var_dump($integer); 
echo "</pre>"; 
?> 

它返回int(133);不知道这是什么意思。 P.s.我也编辑了shebang。

编辑3:

的var_dump $数组返回此:

array(5) { 
    [0]=> 
    string(51) "dyld: Symbol not found: __cg_jpeg_resync_to_restart" 
    [1]=> 
    string(134) " Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO" 
    [2]=> 
    string(59) " Expected in: /Applications/MAMP/Library/lib/libJPEG.dylib" 
    [3]=> 
    string(0) "" 
    [4]=> 
    string(95) "/usr/local/bin/screenshot.sh: line 11: 44948 Trace/BPT trap   $screencapture $screenshot" 
} 
+1

从CGI上下文中, “打击” 可能不会在环境中设置。将脚本的shebang改为'/ bin/bash'。否则让我们知道,它如何*“不起作用。“* – 2012-02-14 10:43:55

+0

我改变了sha-bang,它不能从php脚本中运行;我不知道如何更具体地说明这一点,因为它应该在桌面上创建.png脚本,以及何时我从PHP启动脚本并没有创建!对不起,我是一个新手! – KingBOB 2012-02-14 10:49:11

+0

我编辑了这个问题:) – KingBOB 2012-02-14 11:15:58

回答

3

问题是由于OSX和MacPorts对于那些 库而彼此不兼容!

为了解决这个问题,你必须编辑为根文件在/ usr /包装/ sbin目录/ envvars中:

刚:

  1. 评论这些线

    DYLD_LIBRARY_PATH =“/应用/ MAMP/Library/lib:$ DYLD_LIBRARY_PATH“

    export DYLD_LIBRARY_PATH

  2. 在文档

    出口PATH = “$ PATH中:/ opt/local/bin目录” 的末尾添加此行

0

确保在bash可执行文件所在的目录是在PATH环境变量...好机会了Web服务器环境已将其过滤掉。

+0

我编辑了包括你的答案在内的问题,但不幸的是它不能按预期工作。 – KingBOB 2012-02-14 11:12:55