Hi!
Könntest du mir bitte helfen das Script so umzubauen, dass die Zeichenkodierung (UTF-8) und der Pfad (absolut) angegeben werden?
Absolute Pfadangabe fangen immer mit einem / an. Die mysql-Programme sind im MySQL-Handbuch-Kapitel 4 MySQL Programs beschrieben. mysqldump ist im Kapitel zu den Client-Programmen enthalten.
Außerdem würde ich noch gerne ein Logfile dazu anlegen, aber das müsste einfach mit fwrite gehen, oder?
Ja, zuzüglich Datei öffnen und schließen. Beim Schreiben in einem Stück geht es einfacher mit file_put_contents(), das auch an vorhandene Dateien anhängen kann.
Das werde ich später noch alles machen, da ich aber von Crontab eine Fehlermai bekomme, gehe ich davon aus, das schon etwas schief läuft, bevor das Script ausgeführt wird, oder?
Ja, es wird wegen der relativen Pfadangabe nicht gefunden.
Das ändern des Befehls in * * * * * php /var/www/mysql-backup/backup.php hat auch nichts gebracht, außer, dass die Fehleremail jetzt leer ist.
Gib auch php mit absolutem Pfad an. Wenn du nicht weißt, welcher das ist, hilft dir which php.
Kann es sein, dass die Backupdatei in einem anderen Ordner erstellt wird? Aber dann dürfte doch eigentlich keine Email mehr kommen, oder?
Mit einer absoluten Pfadangabe musst du nicht rätselraten.
Zum Error-Log:
Ich ändere die Einstellungen in /etc/php.ini, standartmäßig ist dort nämlich kein Pfad angegeben, aber wenn ich einen reinschreib, passiert auch nix, weder wenn PHP von der Kommandozeile ausgeführt wird, noch wenn ich in einer Datei für die Homepage einen ; weglasse.
Ich sagte doch bereits, wie du überprüfen kannst, welche ini-Dateien gelesen werden. Hast du das berücksichtigt? Kam dabei /etc/php.ini raus? Am besten ist es, wenn du den Test in der Umgebung laufen lässt, in der dein Script auch am Ende laufen soll. Von der Kommandozeile aus ist schön und gut, aber nur für von der Kommandozeile gestartete Programme.
Mir fällt das noch was ein, Da ich Parallels Plesk verwende,
... kann es sein, dass die Cronjobs in einer chroot-Umgebung laufen und dann nur diese und nicht das gesamte System sehen. Dann helfen Symlinks in die chroot-Umgebung oder Dateien kopieren. Ob chroot Anwendung findest, kannst du über crontab -l -u dein_projektspezifischer_user prüfen, wenn dort eine SHELL-Variable gesetzt ist. Die chroot-Umgebung ist dann /var/www/vhosts/dein_projekt.
kann ich für jede Homepage PHP neu konfigurieren, sprich ob es als CGI/FastCGI-Applikation, oder als Apache-Modul ausgeführt werden soll.
Daher weiß ich nicht, welches in der Kommandozeile verwendet wird.
Keins von beiden, wie ich bereits sagte, da CLI != Apache.
Lo!