我的postwwwacct
脚本中有一些代码不起作用,它不会导入sql文件
shell_exec("cd /home/".$opts['user']."/public_html/sbans/sql/");
$command="mysql -u ".$opts['user']." -p".$opts['pass']." ".$opts['user']."_bans < data.sql";
shell_exec($command);
然而,在创建帐户后,我可以在ssh中手动运行
cd /home/jason/public_html/sbans/sql/
mysql -u jason -pmypass jason_bans < data.sql
然后有效。
postwwwacct
中的php代码有什么问题?
很抱歉重新编辑您的编辑但该文件没有php扩展名 我使用
手动调用php编译器#!/usr/local/bin/php -q
答案 0 :(得分:1)
在我的脑海中,你确定文件data.sql在所有不同用户的sql文件夹中吗?你也可以创建一个单独的bash脚本并在你的脚本中调用它,这对我来说很有用,你只需传递这样的参数:
$t = shell_exec("path/command.sh '$opts['user']' '$opts['pass']' 2>&1");
echo $t
并在bash脚本中这样开始获取变量: #!/斌/庆典
#Get variables needed
user=$1
pass=$2
然后你可以继续使用变量作为任何普通的bash变量,如果你的shell_exec命令末尾的2&gt;&amp; 1仍然无法正常工作,你将能够调试它很多更容易。
祝你好运!答案 1 :(得分:0)
问题是shell_exec执行cd并完成所以找不到用sql导入的命令并且失败。
尝试这样的事情:
<?php
$command="mysql -u ".$opts['user']." -p".$opts['pass']." ".$opts['user']."_bans < data.sql";
$output = shell_exec("cd /home/".$opts['user']."/public_html/sbans/sql/ && ".$command);
如果你想看到命令的结果,那就
echo $ output