2009-09-29 7 views
1

Bit d'un débutant, alors s'il vous plaît excuser le manque de terminologie. . . . J'ai un script PHP pour sauvegarder une base de données MySQL "dbjobs". J'ai essayé presque tout ce que je peux mais je n'arrive pas à le faire fonctionner. Cela fonctionne si j'exécute la commande $ directement à partir de l'invite de commande sur le serveur, mais chaque fois que j'essaie d'exécuter la version PHP, j'obtiens une erreur HTTP 500. J'ai essayé la fonction exec() à la place de system() mais fait toujours la même chose. Est-ce que quelqu'un sait où je vais mal?PHP MySQL Backup script sur le serveur IIS

Merci

+0

Version IIS et version OS? –

Répondre

1

Il est très probable à la fois un problème de chemin (le serveur web ne sait pas où l'exécutable est) et un problème d'autorisation. En règle générale, IIS ne peut pas exécuter un shell (cmd.exe) et ne peut donc pas exécuter l'exécutable. Il doit donc disposer d'autorisations pour obtenir un shell et exécuter l'utilitaire MySQL.

Votre autre alternative est que la base de données le fasse pour vous avec une instruction select qui écrit dans un fichier de sortie.

+0

Gardez à l'esprit la première option, le serveur Web doit avoir des autorisations pour écrire dans le répertoire et sur la deuxième option, le serveur de base de données doit avoir des autorisations d'écriture. –

+0

Est-ce que l'alternative, exec et le système sont tous deux généralement désactivés et ne devraient pas être autorisés de toute façon. – Gus

0

deux options sont à essayer:

  • chemin complet du mysqldump.exe dans la ligne de commande $ code
  • Vous pouvez essayer des accents graves $command à la place du système (clé accents graves a également le tilde symbole lorsque vous déplacez)
  • Peut-être un problème de permissions ???
0

Vous devez accorder des autorisations de lecture/d'exécution au compte sous lequel IIS s'exécute sur C: \ WINDOWS \ System32 \ cmd.exe. Check this out.

Questions connexes