Ltd.Lupo Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 Hallo Ich bin neu hier im Forum und habe ein Problem an dem ich hänge und absolut nicht weiter komme. Folgendes Problem: Bei einer Typo3 Extension wird ein CronJob benötigt welcher natürlich zuvor angelegt werden muss. Der CronJob lautet www.rothe-immobilien.com/typo3/cli_dispatch.phpsh (diesen spricht er auch an), alelrdings muss laut Tutorial der Extension hinter diesem Cronjob die Klasse OpenImmoImport aufgerufen werden. Das geht hier aber leider nicht! Also folgender Cronjob oder URL müsste eingebunden werden: www.rothe-immobilien.com/typo3/cli_dispatch.phpsh openImmoImport Da hier aber ein Leerzeichen enthalten ist nimmt er Servertechnisch den CronJob nicht an. Mein Anbieter schickt mir auf Nachfrage folgende Antwort: Dass die URL nicht angenommen wird liegt daran, weil ein Leerzeichen in der URL enthalten ist und diese somit ungültig ist. Gibt es für das Problem noch eine andere Lösung? Mit Bitte um Rückmeldung Ltd.Lupo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 Hi, lässt sich das Skript so ausführen? Mal mit Anführungszeichen versucht? Wie sieht dein Crontab Eintrag aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 Also mit Anführungszeichen geht es auch nicht! Das ist der Eintag im Tutorial: Set up a cron job to run PHP with it. The command to use for the cron job is: /[absolute path of the TYPO3 installation]/typo3/cli_dispatch.phpsh openImmoImport A line in your cron tab that imports realty objects at three o’clock a.m. then could look like this: 0 3 * * * /var/www/typo3/cli_dispatch.phpsh openImmoImport Den Cronjob richte ich über meine Server KAS Administration ein, wobei ich hier die URL des CronJob eingeben kann....hier nimmt er halt nicht die Leerzeile an sondern gibt mir die Fehlermeldung an: URL ist ungültig! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 Probier einmal folgendes als Pfad für den Aufruf: php "<absoluter Pfad zum Script z.B. /var/www....>?parameter1=value1¶meter2=value2..." Du kannst keine Parameter mit Leerzeichen in einer URL übergeben, Leerzeichen würde mit %20 codiert werden. Wenn es sich um ein Kommandozeilenscript handelt php "<absoluter Pfad zum Script z.B. /var/www....> parameter1 parameter 2..." Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 (bearbeitet) Probier einmal folgendes als Pfad für den Aufruf: php "<absoluter Pfad zum Script z.B. /var/www....>?parameter1=value1¶meter2=value2..." Du kannst keine Parameter mit Leerzeichen in einer URL übergeben, Leerzeichen würde mit %20 codiert werden. Wenn es sich um ein Kommandozeilenscript handelt php "<absoluter Pfad zum Script z.B. /var/www....> parameter1 parameter 2..." Also in meinem Fall /var/www.rothe-immobilien.com/typo3/cli_dispatch.phpsh openImmoImport> parameter1 parameter 2..." Aber er nimmt nichts an da ich nur URL zum CronJOb editieren eingeben kann! Hier mal ein Screen: http://www.rothe-immobilien.com/screens/screenshot.jpg Bearbeitet 28. Januar 2010 von Ltd.Lupo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 Wenn ich den CronJob lediglich mit der URL www.rothe-immobilien.com/typo3/cli_dispatch.phpsh ohne den Aufruf openImmoImport laufen lasse bekomme ich folgende Mail mit diesem Inhalt... #! /usr/local/bin/php -q <?php /*************************************************************** * Copyright notice * * (c) 2005-2008 Kasper Skaarhoj (kasperYYYY@typo3.com) * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is * free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * The GNU General Public License can be found at * http://www.gnu.org/copyleft/gpl.html. * A copy is found in the textfile GPL.txt and important notices to the license * from the author is found in LICENSE.txt distributed with these scripts. * * * This script is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ /** * Command Line Interface module dispatcher * * $Id: cli_dispatch.phpsh 3332 2008-03-01 10:25:21Z masi $ * * @author Kasper Skaarhoj <kasperYYYY@typo3.com> * * This script takes a "cliKey" as first argument and uses that to look up the path of the script to include in the end. * See configuration of this feature in $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']. * The point is to have only ONE script dealing with the environment initialization while the actual processing is all a developer should care for. * */ if (PHP_SAPI!='cli') { die('Not called from a command line interface (eg. a shell or scheduler).'.chr(10)); } // Defining circumstances for CLI mode: define('TYPO3_cliMode', TRUE); // Get path to this script $temp_PATH_thisScript = isset($_SERVER['argv'][0]) ? $_SERVER['argv'][0] : (isset($_ENV['_']) ? $_ENV['_'] : $_SERVER['_']); // Figure out if the path is relative $relativePath = FALSE; if (stristr(PHP_OS,'win') && !stristr(PHP_OS,'darwin')) { // Windows if (!preg_match('/^([A-Z]?\\\/', $temp_PATH_thisScript)) { $relativePath = TRUE; } } else { // *nix, et al if ($temp_PATH_thisScript{0} != '/') { $relativePath = TRUE; } } // Resolve path if ($relativePath) { $workingDirectory = $_SERVER['PWD'] ? $_SERVER['PWD'] : getcwd(); if ($workingDirectory) { $temp_PATH_thisScript = $workingDirectory.'/'.ereg_replace('\.\/','',$temp_PATH_thisScript); if (!@is_file($temp_PATH_thisScript)) { die ('Relative path found, but an error occured during resolving of the absolute path: '.$temp_PATH_thisScript.chr(10)); } } else { die ('Relative path found, but resolving absolute path is not supported on this platform.'.chr(10)); } } // Define absolute path to this script define('PATH_thisScript',$temp_PATH_thisScript); if (!isset($_SERVER['argv'][1])) { die ('The first argument must be a valid key.'.chr(10)); } // First argument is a key that points to the script configuration define('TYPO3_cliKey', $_SERVER['argv'][1]); // Include init file: require(dirname(PATH_thisScript).'/init.php'); if (defined('TYPO3_cliInclude')) { include(TYPO3_cliInclude); } else { die('No include file configured for key "'.TYPO3_cliKey.'".'.chr(10)); } ?> [/code] Was immer ich daraus auch resultieren soll....? Aber der eigentliche Aufruf [b]openImmoImport[/b] hinter dem CronJob fehlt ja! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 Dann schreib Dir doch ein PHP Script das dieses Script mit den Parametern aufruft. Aus Deiner Weboberfläche startest Du dann Dein neues Script Dein Passwort und Benutzername sind im Klartext zu sehen Edit: Wie Du siehst "Command Line Interface module dispatcher" ist das ein Script, das über die Kommandozeile ausgeführt wird Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 Und damit bin ich restlos überfordert... Und dieses Script würde dann auch das openImmoImport am Ende aufrufen? Mit Bitte um Rückmeldung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 Also verstee ich das richtig, ich erstelle eine php.Datei die ich jetzt einfach mal import.php benenne. In diese Datei binde ich den zuvor erhaltenen Code ein. Wäre dann ja dieser Code: #! /usr/local/bin/php -q <?php /** * Command Line Interface module dispatcher * * $Id: cli_dispatch.phpsh 3332 2008-03-01 10:25:21Z masi $ * * @author Kasper Skaarhoj <kasperYYYY@typo3.com> * * This script takes a "cliKey" as first argument and uses that to look up the path of the script to include in the end. * See configuration of this feature in $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']. * The point is to have only ONE script dealing with the environment initialization while the actual processing is all a developer should care for. * */ if (PHP_SAPI!='cli') { die('Not called from a command line interface (eg. a shell or scheduler).'.chr(10)); } // Defining circumstances for CLI mode: define('TYPO3_cliMode', TRUE); // Get path to this script $temp_PATH_thisScript = isset($_SERVER['argv'][0]) ? $_SERVER['argv'][0] : (isset($_ENV['_']) ? $_ENV['_'] : $_SERVER['_']); // Figure out if the path is relative $relativePath = FALSE; if (stristr(PHP_OS,'win') && !stristr(PHP_OS,'darwin')) { // Windows if (!preg_match('/^([A-Z]?\\\/', $temp_PATH_thisScript)) { $relativePath = TRUE; } } else { // *nix, et al if ($temp_PATH_thisScript{0} != '/') { $relativePath = TRUE; } } // Resolve path if ($relativePath) { $workingDirectory = $_SERVER['PWD'] ? $_SERVER['PWD'] : getcwd(); if ($workingDirectory) { $temp_PATH_thisScript = $workingDirectory.'/'.ereg_replace('\.\/','',$temp_PATH_thisScript); if (!@is_file($temp_PATH_thisScript)) { die ('Relative path found, but an error occured during resolving of the absolute path: '.$temp_PATH_thisScript.chr(10)); } } else { die ('Relative path found, but resolving absolute path is not supported on this platform.'.chr(10)); } } // Define absolute path to this script define('PATH_thisScript',$temp_PATH_thisScript); if (!isset($_SERVER['argv'][1])) { die ('The first argument must be a valid key.'.chr(10)); } // First argument is a key that points to the script configuration define('TYPO3_cliKey', $_SERVER['argv'][1]); // Include init file: require(dirname(PATH_thisScript).'/init.php'); if (defined('TYPO3_cliInclude')) { include(TYPO3_cliInclude); } else { die('No include file configured for key "'.TYPO3_cliKey.'".'.chr(10)); } ?> [/code] ...und hier kann ich den Pfad "dispatch.phpsh openImmoImport" zur Ausführun´g dann einbinden oder wie? Im meiner Administrationsoberfläche würde ich dann am Ende bei der URL für den CronJob auf die import.php verweisen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 Nein, Du konstruierst ein PHP Script das Dein Script aufruft, sprich den Kommandozeilenaufruf "php <Orginalscript>" nachbildet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 ...da kann ich mir jetzt nichts drunter vorstellen...! Wie könnte das ausschauen? Kannst Du mir in diesem Fall unter die Arme greifen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 Bitte benutze einmal eine Suchmaschine Deiner Wahl verwenden, es gibt eine Menge Tutorials zum Command Line Interface von PHP. Es gibt dazu auch eine eigene Webseite, die sich auf Platz 1 bei der Suchmaschine mit oo findet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 31. Januar 2010 Autor Teilen Geschrieben 31. Januar 2010 (bearbeitet) Hallo Ich bin jetzt bezüglich dem Command Line Interface einmal nach folgendem Tutorial vorgegangen. TYPO3 CLI (Command Line Interface) oder Cronjobs mit TYPO3 | Blogix Punkt6 Aufrufen des Skripts mit absolutem Pfad (z.B. “/var/www/typo3/cli_dispatch.phpsh extensionkey job”) verstehe ich hier nicht so ganz...! Ursprünglich sollte mein Aufruf ja lauten: www.rothe-immobilien.com/typo3/cli_dispatch.phpsh openImmoImport Also würde ich in dem Fall wie Punkt 6 beschrieben eingeben /var/www/typo3/cli_dispatch.phpsh openImmoImport, soweit so gut! Nur wo tätige ich die Eingabe um das ganze aufzurufen? Im Browser? Bearbeitet 31. Januar 2010 von Ltd.Lupo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 31. Januar 2010 Teilen Geschrieben 31. Januar 2010 Nur wo tätige ich die Eingabe um das ganze aufzurufen? Im Browser? in Deiner Crontab, wenn es per Cron gesteuert werden soll Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 31. Januar 2010 Autor Teilen Geschrieben 31. Januar 2010 Wenn jetzt mit Crontab die Administrationsoberfläche gemeint ist über die ich die Cronjobs anlege stehe ich ja letztendlich wieder vor dem selben Problem /var/www/typo3/cli_dispatch.phpsh openImmoImport nimmt er nicht wegen der Leerzeile! Es ist halt das erste mal das ich für eine Extension einen CronJob nutzen will! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 31. Januar 2010 Teilen Geschrieben 31. Januar 2010 /var/www/typo3/cli_dispatch.phpsh openImmoImport nimmt er nicht wegen der Leerzeile! Ist das so schwer? Du erstellst ein PHP Script, das keine Parameter erwartet, dieses trägst Du in Deinen Cronjob ein. In _diesem_ PHP rufst Du dann das Original Script mit den Parametern auf. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 31. Januar 2010 Autor Teilen Geschrieben 31. Januar 2010 Ok....habe jetzt einfach mal eine test.php mit folgendem Inhalt erstellt und diese über den Cronjob verlinkt! <?php /var/www/typo3/cli_dispatch.phpsh openImmoImport ?>[/PHP] Wahrscheinlich ist der Aufruf aber falsche denke ich! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 31. Januar 2010 Teilen Geschrieben 31. Januar 2010 Wahrscheinlich ist der Aufruf aber falsche denke ich! So ist das auch falsch, weil das kein syntaktisch korrekter PHP Aufruf ist. Du solltest erst einmal klären, was Deine Cronoberfläche ausführen kann und wie es die Scripte ausführt, als nächstes wäre zu klären, ob Befehle in Deiner PHP Installation gesperrt sind. Es gibt Möglichkeiten aus einem PHP Kommandozeilen Aufrufe durchzuführen, wenn diese erlaubt sind. Als Alternative wäre das Originalscript so anzupassen, dass der Parameter eben fest im Script hinterlegt ist und dann das Originalscript via Cron ohne Parameter aufzurufen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 31. Januar 2010 Autor Teilen Geschrieben 31. Januar 2010 Ok, wenn ich es richtig verstehe im Originalscript (in meinem Fall die cli_dispatch.phpsh) #! /usr/local/bin/php -q <?php /*************************************************************** * Copyright notice * * (c) 2005-2008 Kasper Skaarhoj (kasperYYYY@typo3.com) * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is * free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * The GNU General Public License can be found at * http://www.gnu.org/copyleft/gpl.html. * A copy is found in the textfile GPL.txt and important notices to the license * from the author is found in LICENSE.txt distributed with these scripts. * * * This script is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ /** * Command Line Interface module dispatcher * * $Id: cli_dispatch.phpsh 3332 2008-03-01 10:25:21Z masi $ * * @author Kasper Skaarhoj <kasperYYYY@typo3.com> * * This script takes a "cliKey" as first argument and uses that to look up the path of the script to include in the end. * See configuration of this feature in $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']. * The point is to have only ONE script dealing with the environment initialization while the actual processing is all a developer should care for. * */ set_time_limit(0); ignore_user_abort(true); if (PHP_SAPI!='cli') { die('Not called from a command line interface (eg. a shell or scheduler).'.chr(10)); } // Defining circumstances for CLI mode: define('TYPO3_cliMode', TRUE); // Get path to this script $temp_PATH_thisScript = isset($_SERVER['argv'][0]) ? $_SERVER['argv'][0] : (isset($_ENV['_']) ? $_ENV['_'] : $_SERVER['_']); // Figure out if the path is relative $relativePath = FALSE; if (stristr(PHP_OS,'win') && !stristr(PHP_OS,'darwin')) { // Windows if (!preg_match('/^([A-Z]?\\\/', $temp_PATH_thisScript)) { $relativePath = TRUE; } } else { // *nix, et al if ($temp_PATH_thisScript{0} != '/') { $relativePath = TRUE; } } // Resolve path if ($relativePath) { $workingDirectory = $_SERVER['PWD'] ? $_SERVER['PWD'] : getcwd(); if ($workingDirectory) { $temp_PATH_thisScript = $workingDirectory.'/'.ereg_replace('\.\/','',$temp_PATH_thisScript); if (!@is_file($temp_PATH_thisScript)) { die ('Relative path found, but an error occured during resolving of the absolute path: '.$temp_PATH_thisScript.chr(10)); } } else { die ('Relative path found, but resolving absolute path is not supported on this platform.'.chr(10)); } } // Define absolute path to this script define('PATH_thisScript',$temp_PATH_thisScript); if (!isset($_SERVER['argv'][1])) { die ('The first argument must be a valid key.'.chr(10)); } // First argument is a key that points to the script configuration define('TYPO3_cliKey', $_SERVER['argv'][1]); // Include init file: require(dirname(PATH_thisScript).'/init.php'); if (defined('TYPO3_cliInclude')) { include(TYPO3_cliInclude); } else { die('No include file configured for key "'.TYPO3_cliKey.'".'.chr(10)); } ?>[/PHP] den Aufruf "openImmoImport" einzubinden und dann lediglich via Cronjob die cli_dispatch.phpsh einzubinden! Das hatte ich auch schon in Erwägung gezogen, nur reichen meine php Kenntnisse für diesen Fall nicht aus! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 31. Januar 2010 Teilen Geschrieben 31. Januar 2010 Das hatte ich auch schon in Erwägung gezogen, nur reichen meine php Kenntnisse für diesen Fall nicht aus! Bevor Du mir eine PM schickst, um ein Angebot von mir zu erfragen, solltest Du erst einmal überlegen, ob das der richtige Weg ist. Ich habe keinen Hinweis darauf gegeben, dass ich dieses durchführe, Du solltest also nicht irgendwelche Leute belästigen, nur weil Du es selbst nicht kannst, dafür gibt es den Anzeigemarkt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ltd.Lupo Geschrieben 31. Januar 2010 Autor Teilen Geschrieben 31. Januar 2010 Bevor Du mir eine PM schickst, um ein Angebot von mir zu erfragen, solltest Du erst einmal überlegen, ob das der richtige Weg ist. Ich habe keinen Hinweis darauf gegeben, dass ich dieses durchführe, Du solltest also nicht irgendwelche Leute belästigen, nur weil Du es selbst nicht kannst, dafür gibt es den Anzeigemarkt Sorry, ich wollte Dir nicht zu Nahe treten! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.