IIS Server üzerinde PHP MySQL Yedekleme komut

3 Cevap php

Bit of a newbie, so please excuse the lack of terminology. . . . I have a PHP script to backup a MySQL database "dbjobs". I've tried nearly everything I can but can't get it to work. It works if I run the $command directly from the Command Prompt on the server, but everytime I try to run the PHP version, I get an HTTP 500 error.

<?php
$backupFile = "DBJobs_" . date("Y-m-d");
$command = "\"mysqldump.exe\" --opt -hlocalhost -uUser -pPasswword dbjobs > c:/backup.sql";
$result = system($command);

if ($command !== false) {
echo "<p>Backup file created!</p>";
}
else {
  echo "<p>There was a problem!</p>";
}
?>

I have tried the exec() function instead of system() but still does the same. Does anyone know where I am going wrong?

Teşekkürler

3 Cevap

Bu yol sorunu (yürütülebilir nerede web sunucusu bilmiyor) ve bir izin sorunu hem de çok olasıdır. Tipik olarak, IIS bir kabuk (cmd.exe) yürütmek mümkün değildir ve bu nedenle yürütülebilir çalıştırmak mümkün olacak değil, bu nedenle bir kabuk almak ve MySQL programını çalıştırmak için gerekli izinlere sahip olması gerekir.

Sizin diğer alternatif veritabanı bir çıkış dosyasına yazar bir select deyimi ile sizin için bunu yapmak zorunda olduğunu.

Denemek için seçenekleri bir çift vardır:

  • kod $ komut satırında mysqldump.exe tam yol
  • Sen $command sistem yerine backticks (backticks tuşu da kayması Tilda sembolü vardır) deneyebilirsiniz
  • Bir izin sorunu olabilir mi??

\ WINDOWS \ System32 \ cmd.exe: Sen C çalıştığı IIS altında hesaba yürütme / okuma izinlerini vermek zorunda. Check this out.