Intereting Posts

PHP-скрипт для импорта файла в MySQL

У меня есть код в моем 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 

Что тогда работает.

В чем проблема с PHP-кодом в postwwwacct ?

Извините за повторное редактирование вашего редактирования, но у файла нет расширения php. Я вручную вызываю php-компилятор, используя

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

проблема в том, что 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

Сверху моей головы, вы уверены, что файл data.sql находится во всех папках SQL каждого пользователя? Вы также можете создать отдельный скрипт bash и вызвать его в своем скрипте, который работал для меня раньше, вы просто передаете параметры с чем-то вроде этого:

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

и в сценарии bash начинаются так, чтобы получить переменные: #! / bin / bash

  #Get variables needed user=$1 pass=$2 

Затем вы можете использовать переменные как любые обычные переменные bash, и если они все еще не работают для вас, потому что 2> & 1 в конце вашей команды shell_exec, вы сможете отлаживать ее намного проще.

Удачи!