2012-12-13 63 views
0

我找不到錯誤,腳本從控制檯運行正常,我認爲這是PHP的東西,但沒有任何罰款。從PHP執行Shell腳本。 Apache日誌語法錯誤:「)」意外

也許權限的東西?執行的東西?我真的不太瞭解,希望有人能幫助我。謝謝!

bash腳本(SIMPLY發送作業到打印機,但我把它enterely以防萬一):

#!/bin/bash 
PBOX_DIR_TMP="/tmp" 
DESDE=$1 
HASTA=$2 
FORMULARIO=$3 
COLA=$4 
FECHA=$(date +%F) 
SPOOL="/spool.$$.txt" 
ARCHIVOSALIDA="${PBOX_DIR_TMP}"/salida.$$.txt 
RETURNCODE=0 
echo "$DESDE" 
echo "$HASTA" 
echo "@PBSSFORM ${FORMULARIO}" > "${SPOOL}" 
for ((i = ${DESDE};i <= ${HASTA};i++)) 
do 
    if [ $i > ${DESDE} ] 
    then 
    echo -e "\f${FECHA}" >> "${SPOOL}" 
    echo "${i}" >> "${SPOOL}" 
    else 
    echo "${FECHA}" >> "${SPOOL}" 
    echo "${i}" >> "${SPOOL}" 
    fi 
done 
cat "${SPOOL}" | pboxsvc ${PBOX_DIR_BIN}/pboxlib.bin AplicarHostForm > "${ARCHIVOSALIDA}" 
lp -d "${COLA}" "${ARCHIVOSALIDA}" 
RETURNCODE=$? 
rm "${ARCHIVOSALIDA}" 
rm "${SPOOL}" 
if [ ${RETURNCODE} -eq 0 ] 
    then 
    exit 1 
    else 
    exit 0 
fi 

PHP電話:

$cmd = "/printb/imprimirFormPlano.bin 1 2 FILE.PS Cola1"; 

Apache日誌:

/printb/imprimirFormPlano.bin 1: Syntax error: ")" unexpected 
sh: 2: not found. 

如果我像這樣從shell中調用它,腳本將起作用:./printb/imprimirFormPlano.bin 1 2 FILE.PS Cola1

+0

這與PHP有什麼關係? – thatidiotguy

+0

@thatidiotguy我需要從PHP調用它。它將基於網絡 – JorgeeFG

回答

1

它看起來像你的Apache的默認外殼是sh而不是bash。嘗試將您的命令更改爲

$cmd = '/bin/bash /printb/imprimirFormPlano.bin 1 2 FILE.PS Cola1'; 
+0

謝謝,它在apache的錯誤日誌中給出不同的輸出:/printb/imprimirFormPlano.bin:無法執行二進制文件。 sh:2:找不到(我把它從.sh轉換爲bin) – JorgeeFG

+0

@Jorge轉換成怎麼樣? – NullUserException

+0

@NullUserException對不起,它的encripted轉換爲bin的。 – JorgeeFG