2012-02-14 105 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