Logo phpadsnew.ganzkurz.de
30.07.2010

Automatische Wartung

PhpAdsNew benutzt ein spezielles Wartungs-Skript um Kampagnen zu aktivieren, Prioritäten zu rekalkulieren, Statistiken auszuwerten und Berichte an Werbetreibende per eMail zu versenden. Das Wartungs-Skript muss jede Stunde ausgeführt werden damit PhpAdsNew korrekt arbeitet. Es gibt mehrere Wege das Skript automatisch ausführen zu lassen. Einige von Ihnen sind im folgenden beschrieben.

Der am meisten genutzte Weg auf Unix/Linux-Web-Servern eine Aufgabe automatisch ausführen zu lassen ist der cron-daemon. Unter Windows 2000/XP-Servern gibt es eine grafische Oberfläche um Aufgaben zeitgesteuert ausführen zu lassen oder Du benutzt den "at"-Befehl. Wenn Du aus bestimmten Gründen diese Programme nicht benutzen kannst, benutze einen externen cron-Service oder benutze den cron-Emulator der bei PhpAdsNew integriert ist. Die letzten zwei Optionen sind nicht so zuverlässig, wenn möglich vermeide es sie einzusetzen.

Wenn das Wartungs-Skript einmal nicht aufgerufen wird passiert nicht viel. Wird das Wartungs-Skript über einen längeren Zeitraum nicht ausgeführt wirkt sich das auf die Funktionalität von PhpAdsNew aus. Beispiel: Das Wartungs-Skript wurde nicht gestartet, PhpAdsNew aktiviert keine neuen Kampagnen und die Kundenreporte werden nicht versendet. Ein weiterer negativer Effekt ist das PhpAdsNew die Prioritäten der Banner nicht rekalkuliert, was bedeutet das Kampagnen mit hoher Priorität und Kampagnen die zwei Eigenschaften haben, ein Verfallsdatum und eine feste Anzahl an Einlendungen, öfter gezeigt werden als gewollt. Wenn Du Probleme beim Ausliefern mit Bannern von solchen Kampagnen hast überprüfe zuerst die korrekte Ausführung des Wartungs-Skripts.

Falls das Wartungs-Skript länger als 24 Stunden nicht ausgeführt wurde, wird eine Mitteilung angezeigt wenn Du dich in das Admnistrator-Interface einloggst. Diese Mittilung kann nicht deaktiviert werden. Die einzige Möglichkeit diese Meldung nicht anzeigen zu lassen ist, das Wartungs-Skript auszuführen und den automatischen Aufruf korrekt zu konfigurieren.

Zeitgesteuerte Aufgaben ausführen lassen auf Unix/Linux basierten Servern

Auf einem Unix/Linux basiertem Server, wie beispielsweise BSD, Sun oder MacOS X, kannst Du den cron-daemon nutzen um automatisch die Datei maintenance.php stündlich aufzurufen. Du kannst Deine sogenannte cron-jobs mit dem Programm crontab verwalten. Wenn Du kein Zugriff auf crontab hast kontaktiere bitte Deinen Internet-Service-Provider (ISP) oder den Administrator Deines Servers.

In den meisten Fällen brauchst Du Zugriff über die Eingabeaufforderung um auf Deinem Server cron-jobs hinzuzufügen. Nachdem Du dich mittels TelNet oder SSH eingeloggt hast, benutze folgenden Befehl um Deine vorhandenen cron-jobs in eine Datei schreiben zu lassen:

crontab -l > cron.txt

Nach dem Export Deiner vorhandenen cron-jobs in eine Datei kannst Du mit einem Texteditor Deiner Wahl Aufgaben hinzufügen. Weil jeder Server oder ISP anders ist gibt es keine generelle Methode die bei allen Server funktioniert. Abhängig von der Konfiguration Deines Servers kannst Du folgende Programme benutzen um die Datei maintenance.php automatisch auszuführen: curl, fetc, lynx oder wget. Um herauszufinden welches dieser Programme von Deinem Server unterstützt wird gib die Namen einfach auf der Kommandozeile ein. Wenn die meldung erscheint "command not found" ist das Programm auf Deinem Server nicht installiert.

Basierend auf dem jeweiligen Programm müssen folgende Zeilen in der cron.txt hinzugefügt werden:

# bei curl:
0 * * * * curl http://www.server.com/phpAdsNew/maintenance/maintenance.php

# fetch:
0 * * * * fetch -o - http://www.server.com/phpAdsNew/maintenance/maintenance.php

# lynx:
0 * * * * lynx -dump http://www.server.com/phpAdsNew/maintenance/maintenance.php

# wget:
0 * * * * wget -q -O - http://www.server.com/phpAdsNew/maintenance/maintenance.php


Nach dem Editieren der cron.txt und dem Hinzufügen von der jeweilig passenden Zeile muss die cron.txt wieder in den cron-daemon importiert werden. Befehl:

crontab cron.txt

Zeitgesteuerte Ausführung unter Windows 2000/XP-Servern

Bei M$ Windows 2000/XP-Servern kannst Du den Taskplaner verwenden um die Datei maintenance.php aufzurufen. Es gibt kein Standard-Programm um die Datei maintenance.php unter Windows garantiert ausführen.

Download von wget

Zuerst muss wget heruntergeladen werden. Dieses Kommandozeileprogramm holt Dateiinhalte aus Dateien die auf Web-Servern gespeichert sind. Wget gibt es für (fast) alle Betriebssysteme, inklusive Windows. Nach dem Download der .zip-Datei kopiere die Datei wget.exe in das Verzeichnis Deiner Windows-Installation. Wget ist kein Teil von PhpAdsNew und muss separat heruntergeladen werden. Aktuelle Versionen gibt's unter  http://www.gnu.org/software/wget/wget.html.

Erstellen der Batch-Datei

Im nächsten Schritt wird eine kleine Batch-Dati erzeugt welche wget mit Parametern aufruft. Diese Datei kann später durch den Task-Manager automatisch aufgerufen werden. Du kannst Notepad benutzen um die Batch-Datei zu erstellen und folgende Eintragungen machen. Speichere die Datei als phpads.bat wo Du möchtest aber es ist weise die Datei in einem Verzeichnis zu speichern das nicht mehr geändert wird und vom Web-Server erreichbar ist. Das heisst: Du musst die URL im Beispiel unten korrekt an Deine Umgebung anpassen.

Neuen Task erstellen

Der nächste Schritt ist, einen neuen Auftrag im Taskplaner einzurichten. Der Taskplaner versteckt sich im Startmenü unter Zubehör - Systemprogramme.

Klicke auf Task hinzufügen. Der Assistent wird nach einem Klick auf Weiter fragen welches Programm ausgeführt werden soll. Klicke auf Durchsuchen... und wähle die Batch-Datei aus die Du eben erstellt hast. Nun gib dem Task noch einen Namen und wähle "tägliche Ausführung".

Klicke auf Weiter und setze die Stratzeit auf 00:00 Uhr und wähle "Täglich". Nach einem Klick auf Weiter fragt der Assi nach einem Benutzernamen mit ausreichenden Rechten und nach dem zugehörigen Passwort.

Nachdem Du den Benutzernamen und Passwort eingegeben hast klicke auf Weiter. Stelle sicher das die Option "erweiterte Eigenschaften für diesen Task beim ...", aktiviert ist, weil noch einige Einstellungen notwendig sind. Jetzt klicke auf Fertigstellen.

Um sicherzustellen das der Task jede Stunde ausgeführt wird, öffne die Eigenschaften des eben erstellten Tasks, gehe zu "Zeitplan" und klicke auf "Erweitert". Wähle hier "Wiederholungsintervall" und setze die Wiederholungsrate auf 1 Stunde. Bei "Bis" wähle "Zeit" und stelle 23:59 Uhr ein. klicke auf OK, schliesse die Dialogbox ud klicke auf "Übernehmen" um die Einstellungen zu speichern.

Einen externen cron-Server benutzen

Wenn Dein Server keine zeitgesteuerten Aufgaben oder cron-jobs unterstützt ist es trotzdem möglich die Datei maintenance.php jede Stunde auszuführen durch Benutzung eines externen cron-Servers.

 Cronservices.com

Für $9.95 pro Jahr, cronservices.com erlaubt Dir so viele zeitgesteuerte Tasks einzurichten wie Du möchtest. Administriert werden die Tasks über eine einfach zu bedienende Browser-Oberfläche. Nach dem Einloggen bei cronservices.com kannst Du neue Tasks hinzufügen und vorhandene bearbeiten. Um einen Task jede Stunde starten zu lassen, wähle alle Stunden an aber kein Datum, Tag in der Woche oder Monat. Dann gib die volle Adresse (URL) zur Datei maintenance.php in das Feld "Script URL" ein. Beispiel: Dein PhpAdsNew http://www.deinServer.com/phpadsnew, die URL zum Eintragen http://www.deinServer.com/phpadsnew/maintenance/maintenance.php. Nach der Eingabe eines Names für den Task klicke auf Einfügen (Insert).

Verwenden des PhpAdsNew cron-Emulators

Als letztes Mittel besteht noch die Möglichkeit einen cron-Emulator zu benutzen. phpAdsNew liefert einen gleich mit. Der cron-Emulator ist ein kleines Skript das von einer oder mehreren Deiner Webseiten aufgerufen wird. Jedesmal wenn ein Besucher eine Deiner Seiten mit diesem Skript öffnet, überprüft das Skript den letzten Aufruf der Datei maintenance.php und startet sie wenn der letzte Aufruf mehr als eine Stunde zurückliegt.

Diese Methode ist weniger akkurat als die vorherigen Methoden weil Deine Webseite nicht immer pünktlich zur vollen Stunde von jemandem besucht wird, folglich auch die Datei maintenance.php ihren Wartungsauftrag nicht erledigen kann. Sehr effektiv arbeitet diese Methode wenn der Aufruf einer Deiner Seiten mit dem Emulations-Skript innerhalb de ersten 5 bis 10 Minuten jeder Stunde erfolgt. Um akkurat zu arbeiten sollte mindestens ein Besucher das Skript in den ersten 5 bis 10 Minuten aufrufen.

Bevor Du den cron-Emulator benutzen kannst musst Du die Datei fakecron.lastrun.php für Deinen web-Server überschreibbar machen. Die Datei befindet sich im Verzeichnis phpadsnew/misc/fakecron. Auf einem Unix/Linux-Server ändere die Dateirechte auf der Kommandozeile oder falls das nicht geht, mit einem FTP-Klienten.

chmod a+w fakecron.lastrun.php

Nachdem jetzt die Datei fakecron.lastrun.php beschreibbar ist musst Du noch folgenden HTML-Codeschnipsel in eine oder mehrere Deiner Webseiten an beliebiger Stelle einbauen. Nicht vergessen die Adresse im unten gezeigten Beispiel entsprechend Deiner Server-Umgebung anzupassen. Solltest Du PhpAdsNew in ein anderes Verzeichnis installiert haben, vergiss nicht die entsprechenden Anpassungen vorzunehmen damit die Datei fakecron.php vom richtigen Verzeichnis aus aufgerufen wird.

<img src="http://www.server.com/phpAdsNew/misc/fakecron/fakecron.php" width="0" height="0">

 weiter mit Konfiguration - Einleitung


© 2003 - 2010 Reik Holznagel | letzte Änderung: 20.04.2007