Zum Inhalt springen

cronjob-alternative für crawler

Erstellt am 17. Mai 2008 · 6 Antworten · letzte Antwort am 12. Juni 2008

Tags: Server & Hosting, Frage

Eros ·

Hallo,

leider habe ich keinen shell-zugang und die cronjobs von allinkl erlauben nur das Ausführen von php-scripts.

Ist es trotzdem möglich, den crawler irgendwie automatisch anschubsen zu lassen? Durch ein php-script vielleicht?

Dankeschön

typo3tester ·

Hi eros,

Du kannst ja grundsätzlich in einer PHP-Datei einen Befehl exec(meinbefehl) ausführen.
meinbefehl wäre dann das gleiche, was Du an der Shell ausführen kannst.

In meinem Fall würde in der PHP-Datei stehen:

exec ("/usr/local/bin/php /is/htdocs/wp1094014_RN1B2BONXL/www/berggenussde/httpdocs/typo3conf/ext/crawler/cli/crawler_cli.phpsh");

Und die kannst Du ja via Cron ausführen, wenn ich Dich richtig verstehe.

Näheres zu exec siehe hier:
http://de.php.net/manual/de/function.exec.php

Gruß, Regina

Eros ·

Hallo Regina,

Du kannst ja grundsätzlich in einer PHP-Datei einen Befehl exec(meinbefehl) ausführen.
meinbefehl wäre dann das gleiche, was Du an der Shell ausführen kannst.

Das weiß ich schon. Und das ganze mit passthru durchexerziert bringt folgendes:

Warning: require(/usr/bin/conf.php): failed to open stream: No such file or directory in /www/htdocs/w006a0d5/xxxxx/typo3conf/ext/crawler/cli/crawler_cli.phpsh on line 32 Fatal error: require(): Failed opening required '/usr/bin/conf.php' (include_path='.:/usr/share/php:..') in /www/htdocs/w006a0d5/xxxxx/typo3conf/ext/crawler/cli/crawler_cli.phpsh on line 32

Und das sagt mir, dass das irgendwie mit den Pfaden nicht hinhaut, weil z. b. conf.php nicht in /usr/bin/ sondern in /www/htdocs/w006a0d5/xxxxx/typo3conf/ext/crawler/cli/ ist.

Grüße

typo3tester ·

Dann stimmt das hier noch nicht:
--------Datei crawler_cli.php Zeile 14ff-----------------

$curf = '<hier_muss_Dein_Pfad_stehen';
define('PATH_thisScript',$curf);
// Include configuration file:
require(dirname(PATH_thisScript).'/conf.php');

Die Konstante PATH_thisScript ist bei Dir noch falsch gesetzt.
Die wird mit der Variable $curf befüllt werden.
Und die Variable $curf mußt Du mit dem Pfad auf die Datei crawler_cli.phpsh definieren.

In meinem Fall ist das auf meinem Windows-Testrechner:
E:\\wwwroot\\<pfad_auf_mein_typo>\\typo3conf\\ext\\crawler\\cli\\crawler_cli.phpsh

Bei Dir muß halt der entsprechende vollständige physikalische Pfad für Dein Linux-System rein.

Gruß, Regina

Eros ·

Danke erstmal für Deine Unterstützung!

Deine Lösung ist prinzipiell richtig und funktioniert. Man wird allerdings mit folgendem Hinweis konfrontiert:

DEPRICATED - instead, use typo3/cli_dispatch.php, follow instructions in there.

Das habe ich die ganze Zeit versucht, geklappt hat es allerdings bei mir bis jetzt nicht.

Laut Manual und diverser bezugnehmender Tutorials um Netz muß man hierfür einen BE-User _cli_crawler anlegen. Damit funktioniert es zumindest bei mir nicht! Mein User muß _cli_lowlevel heissen, dann klappt es!

Für alle, die es interessiert nochmal die Aufrufe aus php heraus:

Queue erstellen: (1x wöchentlich oder so)

passthru ('/usr/bin/php /www/htdocs/xxxxx/typo3/cli_dispatch.phpsh crawler_im 1049 -d 99 -proc tx_indexedsearch_reindex -n 1000 -o queue');

Queue abarbeiten: (z. B.: alle 2 Minuten oder so)

passthru ('/usr/bin/php /www/htdocs/xxxxx/typo3/cli_dispatch.phpsh crawler');

Grüßeli an Alle

typo3tester ·

Hi,

Aha, da hast Du wohl eine neuere Version als ich.
Ich habe den Crawler 1.1.0.
Dann kann ich da nicht wirklich mitreden bei Deinem Problem.

Gruß, Regina

cschnell ·

warum muss es eigentlich immer der Crawler sein?

Tut es ein wget -r nicht auch? das kann man dann ganz einfach als cronjob machen.