Mysql
 sql >> база данни >  >> RDS >> Mysql

Изпълнението на mysqldump от PHP скрипт не работи, но работи на SSH

Обосновано предположение

Ако мога да направя обосновано предположение, това е защото потребителят, който изпълнява php-скрипта (т.е. потребителят, от който се изпълнява httpd), няма разрешение да пише в /var/www/vhosts/mydomain.com/httpdocs/tools/ .

Въпреки че потребителят, който използвате за изпълнение на командата, има.

STDERR и STDOUT

За да видите дали има нещо отпечатано на STDERR който е подходящ за проблема, използвайте фрагмента по-долу!

$tubes = array(
  0 => array("pipe", "r"),
  // print contents on STDOUT to file
  1 => array("file", "/var/www/vhosts/mydomain.com/httpdocs/tools/dbbackup-2011-12-17.sql", "w"),
  2 => array("pipe", "w")
);

$p_handle = proc_open (
  "/usr/bin/mysqldump --opt --host=localhost --user=\"myuser\" --password=\"mypass\" db_name",
  $tubes, $pipes
);

if (is_resource ($p_handle)) {
    fclose ($pipes[0]);

    $stderr_data = stream_get_contents ($pipes[2]); fclose($pipes[2]);

    $proc_ret    = proc_close ($p_handle);

    echo "--------- STDERR:\n$stderr_data\n";
    echo "------------ RET: $proc_ret\n";
} else {
  die ("Unable to execute external resource, aborting!");
}

Проверете регистрационните файлове!

Проверихте ли error_log свързан с вашия httpd ?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи функцията MATCH() в MySQL

  2. Не мога да изпратя извлечени данни към моя поток socket.io?

  3. заявка за хоризонтално оформление на mysql данни

  4. Подреждане по най-добро съвпадение в eloquent

  5. Mysql - свържете се с отдалечен сървър, използвайки IP адрес