Sziasztok!
Előre is elnézést, ez inkább szerver működésével és PHP-vel kapcsolatos kérdés, de mégis Drupalhoz kapcsolódik, és azért teszem fel itt a kérdést, mert esélyes, hogy már találkoztatok hasonló problémával, és itt elég sok a guru.
IIS-t használok Windows Server 2008 alatt FastCGI PHP-vel.
A Drupal jól és gyorsan működik a szerveren.
Beállítottam a Task Schedulert a cron.php
bizonyos időközönkénti futtatására, mert fontos, hogy az ütemezett feladatok akkor is lefussanak, amikor épp nem böngészik az oldalt.
A php-cgi.exe megfelelő elérési útvonalának beállítását az Actions fülön elvégeztem, argumentumként a cron.php-t adom át neki, a "Start in" résznél pedig ahogy kell, beállítottam a Drupal elérési útvonalát.
Az ütemezés le is fut, DE hibásan, mert notice-okat kapok (a PHP logjában látom őket), amik arról számolnak be, hogy egyes szerverváltozók nincsenek beállítva. Kiemelve a lényeget egy cron lefuttatásakor:
PHP Notice: Undefined index: SCRIPT_NAME in C:\[Drupal-útvonalam]\includes\bootstrap.inc on line 327 PHP Notice: Undefined index: SCRIPT_FILENAME in C:\[Drupal-útvonalam]\includes\bootstrap.inc on line 327 PHP Notice: Undefined index: SCRIPT_NAME in C:\[Drupal-útvonalam]\includes\bootstrap.inc on line 425 PHP Notice: Undefined index: REMOTE_ADDR in C:\[Drupal-útvonalam]\includes\bootstrap.inc on line 1317 PHP Notice: Undefined index: REMOTE_ADDR in C:\[Drupal-útvonalam]\includes\bootstrap.inc on line 1317
Ezt találtam hasonló témában, csak nginx szerverrel kapcsolatban: [link]
"You have configured your nginx server incorrectly, and it is not passing the correct FastCGI parameters."
Rendben, mi nincs konfigurálva, és miért van az, hogy a Drupal böngészőn keresztüli futásakor nem tapasztalok hasonló problémákat, és a PHP logban nincsenek hasonló problémák?
Előre is köszi, és bocs még egyszer az OFF-ért.
szomcsi leszel
Szomorú leszel, ugyanis úgy tűnik, rosszul hívod meg a cron.php-t.
Vagy Drush kell neked. Segíthet még ez: http://drupal.hu/kezikonyv/telepites/simitasok és ez: http://drupal.org/node/23714
Vagyis nem a cron.php-t kell futatnod a PHP értelmezővel, hanem oldalletöltést kell végezned (ekkor állítódnak be a szükséges változók) az oldalad webcímén keresztül. Pl. egy időszakosan meghívott „wget” parancs sokat segíthet.
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
hoppá
Köszi a választ!
Basszus, igazából nem is értem, miért nem jutott korábban eszembe, hogy ha nem webszerveren keresztül futtatom, nyilván nem állítódnak be az említett változók... (nem láttam a fától az erdőt) Teljesen jogos!
A cURL-nek is van Windows-os binary-je, ez ilyen "letöltöd-kibontod-működik" változat, úgyhogy az kézenfekvőnek tűnik, hogy mondjuk beteszem a cURL-t PATH-ba, majd egy batch-fájlban az összes szükséges cron-fájlt meghívom valahogy így:
(NUL-ra azért irányítom az stdout-ot, mert így ha valamelyik cron-fájl esetén nincs elnyomva a PHP-s hibajelzés, vagy bármiféle kiíratás, akkor is felesleges, hogy kiírjon bármit, ha már feladat-ütemezőn keresztül futtatom [vagy akkor már értelmes lehet logfájlba íratni])
És ezt az egy batch-fájlt rakom feladat-ütemezőbe.
Köszi még egyszer az útbaigazítást!