2012-08-22 1 views
0

에서 파일을 가져, 내가 수동으로 ssh를PHP 스크립트가 작동하지 않는 내 <code>postwwwacct</code> 스크립트에서 나는 몇 가지 코드를 가지고 MySQL의

에서 실행할 수 그러나 계정 생성 후 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); 

를 가져올 수 없습니다

cd /home/jason/public_html/sbans/sql/ 
mysql -u jason -pmypass jason_bans < data.sql 

다음은 작동합니다.

postwwwacct에있는 PHP 코드의 문제점은 무엇입니까?

당신의 편집을 다시 편집하지만 파일이 확실 파일 data.sql입니다, 내가 수동으로 내 머리 위로 떨어져

#!/usr/local/bin/php -q 
+0

당신이 어떤 오류를받을 수 있나요

에코 $ 출력을합니까? 쉘 명령을 실행할 권한이 있습니까? –

+0

'echo $ command;'유효한 명령인지 알아보기 – Leri

+0

계정 생성시 cpanel을 통해 실행되므로 출력을 볼 수 없습니다. –

답변

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); 

을 당신이 당신의 명령의 결과를보고 싶다면 단지

+0

Legend - dairy :) –

1

를 사용하여 PHP 컴파일러를 호출 PHP 확장 이 없습니다 죄송합니다 모든 다른 사용자의 SQL 폴더에 있습니까? 또한 별도의 bash는 스크립트를 작성하기 전에 나를 위해 일한 스크립트에서 호출, 당신은 단지 같은 것을 사용하여 매개 변수를 전달할 수 :

$t = shell_exec("path/command.sh '$opts['user']' '$opts['pass']' 2>&1"); 
echo $t 

및 bash는 스크립트

얻을이 같은 시작 변수! #/빈/bash는

#Get variables needed 

user=$1 
pass=$2 

그런 다음 어떤 정상 bash는 변수로 변수를 사용하여 진행 할 수 있습니다 여전히 끝에 2> & 1 렸기 때문에 당신을 위해 작동하지 않는 경우 shell_exec 명령을 사용하면 쉽게 디버깅 할 수 있습니다.

행운을 빈다.

+0

나는 각 사용자 디렉토리에 이전 쉘 명령을 사용하여 sql 파일을 복사합니다. 코드의 나머지 부분이 있기 때문에 이드는 PHP를 고수하고 싶어한다. –

+0

어쨌든 shell_exec 명령 다음에 2> & 1을 추가하는 것이 좋습니다. 오류를 인쇄하고 $ command를 echo하면 실패한 이유에 대한 자세한 정보를 얻습니다. – patrickdamery

관련 문제