Hallo allerseits,
ich habe gerade auch Probleme mit dem Crawler, habe allerdings zuerst mit dem Hoster (all-inkl @ Tarif private-plus) Ursachenforschung betrieben, denn bei 2 Hauptaccounts funktioniert es,
nur ein Unteraccount hat Probleme (= alle Contao 4.9.1), was ja rein logisch ausschliessen sollte, das es an Contao liegt.
Ich poste es hier mal, weil mir das etwas merkwürdig vorkommt. Brauchen tu ich die Funktion momentan nicht, aber es könnte Euch Entwicklern hoffentlich helfen.
Ich wurde, als der Crawler einfach stehenblieb bei 11%, etwas stutzig: im Logfile meckert er fehlende Schreibrechte an:
Code:
request.CRITICAL: Uncaught PHP Exception UnexpectedValueException: "The stream or file "/tmp/contao-crawl/7126c7ee-344d-4075-a2b2-63c52d4775c2_log.csv" could not be opened: failed to open stream:
Permission denied" at /www/htdocs/xxxxxxxx/_neu/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php line 108 {"exception":"[object] (UnexpectedValueException(code: 0):
The stream or file \"/tmp/contao-crawl/7126c7ee-344d-4075-a2b2-63c52d4775c2_log.csv\" could not be opened: failed to open stream:
Permission denied at /www/htdocs/xxxxxxxx/_neu/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:108)"} []
Daraufhin hat mich all-inkl gebeten, per .htaccess das temp Verzeichnis auf den Webspace umzuleiten (mit CHMOD 777), und das Logging zu aktivieren:
Code:
##
# Umleitung /temp Speicher auf Webspace
##
php_value session.save_path /www/htdocs/xxxxxxxx/temp
php_value session.gc_probability 1
##
# Ausgabe PHP Error Logs @ Webspace
##
php_flag log_errors on
php_value error_log "/www/htdocs/xxxxxxxx/errorlog/errorlog.txt"
php_flag display_errors off
Hat sich nix geändert, worauf ich dann folgende Antwort bekam:
die Änderung des Session-Pfad reicht nicht aus. Es muss der Pfad zum sys_temp_dir geändert werden. Dies ist nur durch uns möglich. Ich habe dieses nun für den Account xxxxxxxx auf /www/htdocs/xxxxxxxx/temp gesetzt.
Ihre Skripte sollten nun funktionieren.
Jetzt habe ich Schreibrechte, der Linkchecker funktioniert, Searchindexer bleibt immer noch bei 11% hängen, nun aber mit der Fehlermeldung von grashalm in seinem Anfangspost:
Code:
request.CRITICAL: Uncaught PHP Exception InvalidArgumentException:
"The URL of the element is relative, so you must define its base URI passing an absolute URL to the constructor of the Symfony\Component\DomCrawler\AbstractUriElement class ("" was passed)." at /www/htdocs/xxxxxxxx/_hp/vendor/symfony/dom-crawler/AbstractUriElement.php line 52 {"exception":"[object] (InvalidArgumentException(code: 0):
The URL of the element is relative, so you must define its base URI passing an absolute URL to the constructor of the Symfony\\Component\\DomCrawler\\AbstractUriElement class (\"\" was passed). at /www/htdocs/xxxxxxxx/_hp/vendor/symfony/dom-crawler/AbstractUriElement.php:52)"} []
Mir wurde zu Analysezwecken ein php-fpm_slow.log eingerichtet, um:
Ansonsten ist der Account xxxxxxxx ans FPM Limit von maximalen gleichzeitigen Prozessen gekommen, dh es gab wahrscheinlich PHP Prozesse die sehr lange liefen. Das war zuletzt xx:xx Uhr und xx:xx Uhr der Fall. Wir haben Ihnen einmal ein Slowlog angelegt, da ab jetzt alle Prozesse über 10 sek mitloggt.
/www/htdocs/xxxxxxxx/logs/php-fpm_slow.log
Inhalt Logfile:
Code:
[pool xxxxxxxx] pid 23213
script_filename = /www/htdocs/xxxxxxxx/_hp/web/index.php
[0x00007f1af5614490] stream_copy_to_stream() /www/htdocs/xxxxxxxx/_hp/vendor/symfony/http-foundation/BinaryFileResponse.php:303
[0x00007f1af5614290] sendContent() /www/htdocs/xxxxxxxx/_hp/vendor/symfony/http-foundation/Response.php:378
[0x00007f1af56141c0] send() /www/htdocs/xxxxxxxx/_hp/web/index.php:32
[pool xxxxxxxx] pid 11837
script_filename = /www/htdocs/xxxxxxxx/_hp/web/index.php
[0x00007fad86013490] stream_copy_to_stream() /www/htdocs/xxxxxxxx/_hp/vendor/symfony/http-foundation/BinaryFileResponse.php:303
[0x00007fad86013290] sendContent() /www/htdocs/xxxxxxxx/_hp/vendor/symfony/http-foundation/Response.php:378
[0x00007fad860131c0] send() /www/htdocs/xxxxxxxx/_hp/web/index.php:32
Was mich an der Sache wundert, ist die Tatsache, das die anderen Accounts keinerlei Probleme haben, deswegen auch zuerst die Recherche bei meinem Hoster.
@ grashalm: Du scheinst es hinbekommen zu haben, Glückwunsch
ToM