Cronjob funkar inte efter uppgradering till 6.20

Events happening in the community are now at Drupal community events on www.drupal.org.
varkstad's picture

På försommaren uppgraderade jag Drupal till 6.20 och sedan dess har cronjob inte funkat. När jag kontaktade supporten på webbhotellet fick jag följande svar:

"Jag har skapat ett cronjobbtest som skriver ut tidpunkt till filen crondate var femte minut. Den fungerar, så det är inget fel på själva cronjobbet.

Problemet måste ligga i wget eller att det är fel i PHP-filen."

Hur ska jag bete mig för att få cronjob att köra automatiskt?

/Gunilla

Comments

Funkar manuell cron?

tsvenson's picture

Har du provat att köra cron från Status sidan i Drupal? Om inte, gör det och sen kolla loggen vad den säger.

Funkar allt där så är det isf ingen fel på din Drupal, utan det externa kommandot du kör.

--
/thomas
T: @tsvenson | S: tsvenson.com

Tack för svaret! Nej, det

varkstad's picture

Tack för svaret!

Nej, det funkar inte att köra manuell cron heller och nu ser jag att det är något knas med databasionställningen. Jag får felmeddelande:

"If you are the maintainer of this site, please check your database settings in the settings.php file and ensure that your hosting provider's database server is running. For more help, see the handbook, or contact your hosting provider.

The mysql error was: Unknown database 'u5522419_e'."

Men i settings.php är drupal kopplad till 'u5522419_c'. Hur kan det ha blivit så och var ändrar jag så att cron körs mot 'u5522419_e'?

Jag har testat poormanscrin också men det funkar inte heller, åtminstone står det i status att cron inte körts sedan 11 veckor trots att jag aktiverat poormanscron.

/Gunilla

Bara koll, du körde väl

tsvenson's picture

Bara koll, du körde väl update.php när du uppdaterade drupal? Eftersom detta hände när du uppdaterade så kan det ju vara något som hände där.

Enda stället som Drupal kollar vilken databas den skall koppla upp mot är normalt settings.php. Kolla så att det bara finns en databas konfigurerad i den filen. Har du mer än en Drupal sajt? Isf kanske du av misstag kollade i fel settings.php och att det är därför dom skiljde sig åt.

poormanscron gör inget annat än kör cron.php, core fil, efter en viss tid och triggas av att det är aktivitet på sajten.

Hur gjorde du när du uppdaterade till 6.20? Låter som att det var där något gick snett.

--
/thomas
T: @tsvenson | S: tsvenson.com

Poormanscron

tsvenson's picture

Cron är ju viktigt att det körs, och kan du inte få ordning på den externa triggningen så kan du titta på http://drupal.org/project/poormanscron som ett alternativ. Då körs cron efter en viss tid när det är aktivitet på sajten.

--
/thomas
T: @tsvenson | S: tsvenson.com

Jag skapade en ny databas

varkstad's picture

Jag skapade en ny databas 'u5522419_c' där jag först importerade en backup från tidigare databas och därefter uppgraderade jag den och såg till att settings.php var kopplad mot 'u5522419_c' vilket den fortfarande är.

Det finns ingen uppgift i settings.php om databasen 'u5522419_e'. Den existerar inte.

Om cron.php körs mot en databas som inte finns så funkar väl inte poormans cron heller?

/Gunilla

cron.php läser, som allt

tsvenson's picture

cron.php läser, som allt annat i Drupal, sina inställningar från settings.php, finns inga specialinställningar för den.

Tyvärr har nog mina idéer om vad som kan ha gått fel i stort tagit slut. Det enda jag kan tipsa om är att köra update.php, bara för att kolla ifall den spottar ur sig någon information om att uppdateringar av databasen görs. Kan ju ha varit något som gick fel och missades. Om inget annat bara för att säkerhetsställa att den är helt OK.

--
/thomas
T: @tsvenson | S: tsvenson.com

Olika foldrar?

sl27257's picture

Vilka olika foldrar har du under sites-foldern?

/Thomas

Där har jag en defaultmapp

varkstad's picture

Där har jag en defaultmapp som även den innehåller settings.php där den rätta databasen också finns angiven, dvs. u5522419_c.

/Gunilla

Tack i alla fall för att du

varkstad's picture

Tack i alla fall för att du gjorde mig uppmärksam på var felet ligger. Ställer frågan i det internationella forumet också och får jag ingen idé om hur det ska lösas får jag väl uppgradera iugen. Det har ju kommit några senare versioner.

Trevlig helg!
Gunilla

Nja, uppgradera till nyare

tsvenson's picture

Nja, uppgradera till nyare version är inte att rekommendera förrän du vet vad det är för fel. Det är ofta som en uppgradering inkluderar förändringar i databasen, både vad gäller Drupal Core och contrib moduler. Det är just databasen som update.php fixar när du uppdaterar till nya versioner. Kör du inte den efter varje uppdatering av core/contrib så är risken att sajten slutar fungera som den skall.

--
/thomas
T: @tsvenson | S: tsvenson.com

Jag har för vana att köra

varkstad's picture

Jag har för vana att köra update.php efter varje förändring och har gjort det nu också.

/Gunilla

Det låter mycket märkligt att

pontus_nilsson's picture

Det låter mycket märkligt att cron inte kommer åt mysql medan sajten är online och läser settings.php korrekt. Och märkligt att cron.php kör mot en annan databas.

Lite relaterad diskussion.

Har du rätt rättigheter till din databas?

INSTALL.mysql.txt säger att dessa rättigheter ska finnas.

23 GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
24 ON databasename.*
25 TO 'username'@'localhost' IDENTIFIED BY 'password';
26

Kontaktar verkligen cron.php som körs den "nya" installationen (cron.php körs mot en annan installation)?

//Pontus Nilsson, Digitalist

Såvitt jag förstår har jag

varkstad's picture

Såvitt jag förstår har jag alla rättigheter till databasen.

Ja, det verkar som om cron.php körs mot en annan databas som inte längre finns. Det måste väl finnnas någonstans än i settings.php jag kan ändra detta?

/Gunilla

Cron-raden?

sl27257's picture

Då får vi leta fel på andra ställen... :)

Hur ser raden som cron kör ut?
Om den raden pekar på en fil i scripts/ foldern hur ser filen i fråga ut?

/Thomas

Hej Thomas! Jag förstår inte

varkstad's picture

Hej Thomas!

Jag förstår inte riktigt vilken rad du menar.

När jag kör cron manuellt inifrån drupal får jag följande error-rader:

"If you are the maintainer of this site, please check your database settings in the settings.php file and ensure that your hosting provider's database server is running. For more help, see the handbook, or contact your hosting provider.

The mysql error was: Unknown database 'u5522419_e'."

Pekningen sker således mot fel databas.

cron.php-filen innehåller följande kod:

<?php

/**
* @file
* Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).
*/

include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_cron_run();

/Gunilla

Är du säker på att du inte

pontus_nilsson's picture

Är du säker på att du inte har en till Drupalinstallation i en annan mapp som har koppling till den gamla databasen i settings.php? Kanske är det den installationen cron-jobbet kör mot?

//Pontus Nilsson, Digitalist

Ja, det är jag säker på, men

varkstad's picture

Ja, det är jag säker på, men jag har haft det tidigare. Nu jag studerar mappar och filer i 6.20 så finns där en mapp som heter settings i vilken det finns en fil settings.php. Dessutom finns det en sådan fil i sites>default. Jag minns nu att jag blev lite förvirrad i samband med installationen då jag inte fick klart för mig vilken av filerna som styrde och därför ändrade jag till databasen u5522419_c i båda dessa filer. Och det gjorde jag sannolikt via ftp-programmet och inte via något installationsprogram. Förmodligen är det någon form av sammanblandning av dessa settings.php som spökar. De pekar båda till c-databasen, men i ett tidigare skede har förmodligen den ena filen pekat mot e-databasen som inte längre existerar. Jag vet inte hur jag ska reda ut detta.

Jag har nu försökt att skapa en ny installation genom att

  1. Skapa en helt ny databas.
  2. Exportera tidigare databas och importera den i den nya databasen.
  3. Jag har därefter via ftp lagt ut alla mappar och filer i version 7.8 (den senaste) i en mapp som heter drupal_ny.
  4. Jag har därefter i ftp-programmet öppnat sites>default>settings.php och lagt in databasnamn, lösenord etc. och sparat detta.
  5. I nästa steg har jag öppnat webbläsaren och skrivit in webbadressen/drupal_ny och klickat på enter och får då följande error-meddelande:

Error message
•Notice: Undefined index: academicatravel in _drupal_maintenance_theme() (line 74 of /home/u/u5522419/www/drupal_ny/includes/theme.maintenance.inc).
•Notice: Trying to get property of non-object in _drupal_theme_initialize() (line 145 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'u5522419_b.blocked_ips' doesn't exist: SELECT 1 FROM {blocked_ips} WHERE ip = :ip; Array ( [:ip] => 83.178.225.151 ) in drupal_is_denied() (line 1824 of /home/u/u5522419/www/drupal_ny/includes/bootstrap.inc).
•Notice: Trying to get property of non-object in _theme_build_registry() (line 549 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Trying to get property of non-object in _theme_build_registry() (line 549 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Trying to get property of non-object in _theme_build_registry() (line 549 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Undefined index: academicatravel in theme_get_setting() (line 1166 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Undefined index: academicatravel in template_preprocess_maintenance_page() (line 2434 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Trying to get property of non-object in template_preprocess_maintenance_page() (line 2434 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Warning: array_keys() [function.array-keys]: The first argument should be an array in template_preprocess_maintenance_page() (line 2437 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Warning: Invalid argument supplied for foreach() in template_preprocess_maintenance_page() (line 2437 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).

•Notice: Undefined index: academicatravel in _drupal_maintenance_theme() (line 74 of /home/u/u5522419/www/drupal_ny/includes/theme.maintenance.inc).
•Notice: Trying to get property of non-object in _drupal_theme_initialize() (line 145 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'u5522419_b.blocked_ips' doesn't exist: SELECT 1 FROM {blocked_ips} WHERE ip = :ip; Array ( [:ip] => 83.178.225.151 ) in drupal_is_denied() (line 1824 of /home/u/u5522419/www/drupal_ny/includes/bootstrap.inc).
•Notice: Trying to get property of non-object in _theme_build_registry() (line 549 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Trying to get property of non-object in _theme_build_registry() (line 549 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Trying to get property of non-object in _theme_build_registry() (line 549 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Undefined index: academicatravel in theme_get_setting() (line 1166 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Undefined index: academicatravel in template_preprocess_maintenance_page() (line 2434 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Notice: Trying to get property of non-object in template_preprocess_maintenance_page() (line 2434 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Warning: array_keys() [function.array-keys]: The first argument should be an array in template_preprocess_maintenance_page() (line 2437 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
•Warning: Invalid argument supplied for foreach() in template_preprocess_maintenance_page() (line 2437 of /home/u/u5522419/www/drupal_ny/includes/theme.inc).
The website encountered an unexpected error. Please try again later.

Det är här jag befinner mig just nu. Allt utom cron.php fungerar i den ursprungliga installationen så jag vill inte strula till den genom att försöka mig på att uppgradera den utan vill i stället göra en installation vid sidan som jag sedan övergår till.

/Gunilla

Det verkar lite fel med att

pontus_nilsson's picture

Det verkar lite fel med att det finns en mapp som heter settings som innehåller settings.php

Per default finns detta
sites/default
sites/all

Det är bara i default som settings.php ska finnas.

Alternativt i sites/mysite.com/settings.php

Kan du se om det finns fler settings.php under sites? Kan du reducera så det bara finns en settings.php i default eller mysite.com ?

I dina felmeddelanden ovan verkar det som cron försöker köra mot databasen u5522419_b. Bland annat detta felmeddelande hintar om detta
Base table or view not found: 1146 Table 'u5522419_b.blocked_ips' doesn't exist: SELECT 1 FROM {blocked_ips} WHERE ip = :ip; Array ( [:ip] => 83.178.225.151 )

//Pontus Nilsson, Digitalist

I sites>default finns det

varkstad's picture

I sites>default finns det bara en settings.php.

Jag provade nu att döpa om mappen i drupalroten - i den gamla installationen - som heter settings för att den inte skulle spela något spratt men cron.php söker fortfarande efter e-databasen.

Det är korrekt med u5522419_b. Det heter den nya databas jag skapade i hopp om att kunna göra en helt ny installation.
Jag förstår inte varför den inte hittas. Jag har skickat en fråga till fs-data som är mitt webbhotell om det är några ändrade inloggningsuppgifter. Jag sköter denna drupal-installation åt en god vän och ev. ändringar kan ha gått mig förbi.

/Gunilla

Installations-error

varkstad's picture

Hej igen!

Jag har nu skapat en ny databas och importera min tidigare databas dit och laddat upp filerna till version 7.8 och när jag öppnar siten i webbläsaren får jag följande error:

Error message
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'u5522419_b.blocked_ips' doesn't exist: SELECT 1 FROM {blocked_ips} WHERE ip = :ip; Array ( [:ip] => 83.178.225.151 ) in drupal_is_denied() (line 1824 of /home/u/u5522419/www/drupal_ny/includes/bootstrap.inc).
The website encountered an unexpected error. Please try again later. .

När jag kopplar drupal 7.8 till en helt tom databas får jag följande error:

Error message
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'u5522419_d.semaphore' doesn't exist: SELECT expire, value FROM {semaphore} WHERE name = :name; Array ( [:name] => variable_init ) in lock_may_be_available() (line 167 of /home/u/u5522419/www/drupal_ny/includes/lock.inc).. .

I det första fallet verkar en tabell saknas, likaså i andra fallet, men där ska väl alla tabeller skapas automatiskt eftersom databasen är tom från början.

Vad gör jag för fel?

/Gunilla

I första fallet, gick du från

pontus_nilsson's picture

I första fallet, gick du från Drupal 6 till 7?

Med en tom databas behöver du köra /install.php för att Drupal ska installeras på databasen.

//Pontus Nilsson, Digitalist

Ja, i första fallet gick jag

varkstad's picture

Ja, i första fallet gick jag från 6.18 till 7.8.

Nu har jag lyckats installerat 7.8. i en tom databas. Men då uppstår nästa fråga. Hur får jag över all informatuion från den tidigare databasen? Kan jag helt enkelt importera den via phpMyAdmin över den databas där jag har nyinstallationen?

Jag försökte aktivera mitt tidigare tema i den nya installationen men den är inte kompatibel med 7.8. så det är kanske där felet ligger. Det går kanske inte att gå från 6.18 till 7.8.

Ska jag behöva bygga om hela siten?

/Gunilla

För att gå från 6 till 7 så

pontus_nilsson's picture

För att gå från 6 till 7 så måste du köra update.php. Läs vad du behöver göra innan här.

If you have a relatively simple Drupal site, things should go fairly well. If you have a very complex site, you might need to consider migrating your site instead of simply upgrading (meaning: export your content, rebuild the site in Drupal 7, and reimport it into the Drupal 7 site).

//Pontus Nilsson, Digitalist

Hej Pontus! Nu har jag löst

varkstad's picture

Hej Pontus!

Nu har jag löst problemet med crontab som pekade mot fel databas, en databas som tidigare var borttagen. Slutligen återskapade jag den borttagna databasen och tog bort den igen och då fungerade cron som det skulle. Det måste ha blivit någon rest kvar av den gamla databasen efter delete i phpMyAdmin.

/Gunilla

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: