我想做的是:
注意:
我的“shellUnlock.php”文件
$myfile = fopen("nameUSER.txt", "w") or die("Unable to open file!");
$txt = "USERNAME";
fwrite($myfile, $txt);
fclose($myfile);
shell_exec('./scriptUNLOCK.sh');
if (file_exists("resultUNLOCK.log"))
echo readfile("resultUNLOCK.log");
}else{
echo "Please Try";
}
我的“scriptUNLOCK.sh”脚本
#!/bin/bash
HOST='user@da.serv.er'
HOME='/home/web/UNLOCK'
DIR='/somewhere/script/UNLOCK/'
cd ${HOME}
while read nameUSER
do
ssh ${HOST} <<END_SCRIPT
cd ${DIR}
unlock.sh ${nameUSER} > resultUNLOCK.log
exit
END_SCRIPT
cd ${HOME}
scp ${HOST}:${DIR}resultUNLOCK.log ${HOME}
done < nameUSER.txt
现在请帮助我。我完全糊涂了。感谢。
答案 0 :(得分:0)
如果从命令行运行脚本时脚本运行正常,但是当您通过Web服务器触发脚本时脚本不正常则必须是权限或/和路径问题。
确保apache用户(默认情况下为www-data,www或apache)具有对UNLOCK文件夹的写入权限,我认为它可以正常工作。 您应该更改“HOME”变量的名称,因为HOME是Linux中的修复环境变量。我不知道这是不是一个问题,但我会更改名称以避免混乱。
最好的方法是通过群组
sudo usermod -a -G www-data <apache_user>
sudo chgrp -R www-data /somewhere/script/UNLOCK/
sudo chmod -R g+w /somewhere/script/UNLOCK/
因此,至少您通过putty登录的用户必须有权修改目录的可访问性。如果没有,您可以联系您的系统管理员或使用您有权访问的其他文件夹。
我希望这会有所帮助。 亲切的问候
答案 1 :(得分:0)
我的问题解决了!
而是在php中使用shell_exec,我使用crontab直接执行脚本。 如果我没有时间限制,我相信我能找到其他最佳解决方案来解决这个问题。 但是时间迫使我。 :d 好吧,至少IT工作!
谢谢大家......!