Posted by jessan73 on April 20, 2010 at 6:33pm
Har letat på nätet och hittar inte någon lösning på ett nytt problem som jag stött på till en site jag försöker skapa, kanske ni vet hur jag ska komma vidare.
Efter att ha försökt att installera update status modulen utan framgång så kom jag på ett sätt att få igång den. Jag avinstallerade de flesta moduler och på så sätt fick jag igång den, men nu fungerar inte cron , så jag kan inte se om några moduler behöver uppdateras.
Har ni någon ide hur jag ska få igång Cron? Databasuppdateringen får jag inte igång hur jag än kör update.php. kör nu 6.16
mvh jessica

Comments
Felmeddelanden
Du får inga felmeddelanden?
--
Hjälper gärna (pro bono) de som vill lära sig Drupal (fast jag är inte i "Drupal Nirvana" än), vill någon ha professionell hjälp har jag ett företag också.
Viktigt att ha igång update status?
Inga felmeddelanden, förutom att då jag testar att köra manuellt så kommer meddelandet att "Cron run failed"...Läst att Update status kan strula till cron run...är den viktig att ha igång eller kan man skippa den?
Har inget strulande cron så
Har inget strulande cron så kan inte kontrollera, men troligen skriver cron ett mer detaljerat fel meddelande till syslog, vilket i sin tur normalt sett är /var/log/messages
Kom på att cron kan ju skriva till syslog utan att krångla, och mycket riktigt så har jag meddelanden från cron i messages.
Hittar inte sidan
Hur kan man hitta felmeddelanden då man inte kommer åt dom på /var/log/messages....skriver in i webbläsaren på detta sätt www.mysite.se/var/log/messages men page not found kommer istället....aktiverat modulen syslog såklart.
MVH Jessica
Lite chans...
Det är bara en liten chans att du kommer åt /var/log/messages om du inte själv har fulla privilegier på din (egen) maskin. Det krävs i princip alltid att du har root-privilegier, alltså fulla administrationsprivilegier på den. Detta av säkerhetskäl. (Och skulle du göra det utan att vara root skulle jag byta leverantör... :) ) Dessutom är det nog bara om du kör på en Linux / Unix maskin som filer heter så (Någon annan som vet bättre vad det gäller Mac/Windoze får rätta mig om jag har fel)
Alltså krävs det andra metoder för att leta reda på ditt problem... Nedanstående funkar om du kör något "Linux"-system alltså vad som dagligen kallas LAMP.
1) Har du en riktig cron eller har du en "Poor mans cron" eller vad modulen heter?
2) Vilket filnamn har du skrivit in som det som cron skall köra?
3) Om du har "shell-access" (skal-access) skriv in följande kommandon i ett shell-fönster:
3a) ls -l fil-enligt-2-ovan
3b) which lynx
3c) which curl
3d) (cd din-drupal-map; ls -l scripts)
4) Hur ser dina din-drupal-mapp/scripts/cron-lynx.sh och din-drupal-mapp/scripts/cron-curl.sh filer ut?
Mvh
/Thomas
Drupalnovis här :)
Ok eftersom jag har min sida på manufrog så har jag ju inga adminprivillegier....I c-panel så skrev jag in detta:
php /home/mysite/public_html/cron.php men det funkade inte...Likaså då jag försöker köra cron manuellt högst upp till vänster i administrationsmenyn så får jag cron run failed...har alltså inte poormanscron eller annan cronmodul installerad förrutom drupals.
Så ska jag fråga manufrog om det finns shell som jag kan använda?
Under punkt 4 ...de filerna har jag inte ändrat utan är drupals 6.16.
mvh Jessica
OK då är jag med!
Jag har alltid gjort så här på mina maskiner. Har aldrig kört cron.php direkt. Men det går utmärkt att göra kom jag just på / fram till :) .
Min variant:
Låt cron köra filen /home/mysite/public_html/scripts/cron-lynx.sh istället. Det skall inte stå php eller något först på raden. I denna fil måste du då byta ut så att lynx kör http://din-site/cron.php istället för http://exampel.com/cron.php som det står från början.
Sedan gäller det då att de har lynx (eller curl) installerat på systemet. Därav testerna "which lynx" osv.
Din variant:
Alternativet är att göra som du tänkt. Men på mina maskiner går det ej att skriva php eller php5. Jag behöver skriva php5-cgi istället för php som du skrivit först på din rad. Om jag skriver php får jag samma felmeddelande som du. Så det snabbaste för dig är kanske att prova att byta ut php till php5-cgi.
/Thomas
Vet inte om detta funkade...
Nu har jag fått detta via eposten då jag ställde in cron via cpanels cronjob.
Men går jag till min site och försöker köra run cron via adminmenyn så funkar det inte...
X-Powered-By: PHP/5.2.12
Set-Cookie: SESS064e310c709865db2205968402a62964=3a2c179b50eafd4e224485cf836d9322; expires=Wed, 19-May-2010 20:33:21 GMT; path=/
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 26 Apr 2010 17:00:01 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
mvh jessica
Halvt rätt...
Meddelandet du får via mail är vad jag får när min cron exekveras rätt via php5-cgi.
Varför det inte fungerar via admin menyn är svårare att svara på... Det är nämligen samma anrop som görs efter ett tag i båda fallen.
Får du
Cron run completed.
i loggen på http://din-site/admin/reports/dblog när du kört det via cpanel / cron?
Hur ser du att det inte fungerar när du kör det från:
http://din-site/admin/reports/status/run-cron
Står det något i loggen? Får du en vit sida?
/Thomas
Cron run failed!
http://din-site/admin/reports/dblog ... laddar jag denna sida kommer jag till status report som visar detta: Cron maintenance tasks Never run
Cron has not run. For more information, see the online handbook entry for configuring cron jobs. You can run cron manually.
http://din-site/admin/reports/status/run-cron...laddar jag denna kommer rutan upp fel cron run failed (har modulen better messages igång).
Är det så att jag lyckats radera någon databas som hör till dblog eller cron?
mvh Jessica
Kör detta
Skriv så här i din browser:
http://din-site/cron.php
Då skall cron köras... Om allt går rätt slutar det med en vit sida när din browser tycker att den är färdig. Du behöver inte vara inloggad för att köra det. Dessutom skall du få ett meddelande i loggen.
Om det inte blir rätt så är det något fel i någon modul som anropas av cron vad jag förstår. Alla moduler kan registrera sig så att de körs av cron. Jag har haft problem med att en modul tar så långt tid att den avsatta tiden tar slut och då får man ibland konstiga felmeddelanden i loggen. Hur långt tid tar det innan felmeddelandet kommer upp?
En bit ner på denna sida
http://din-site/admin/reports/status/php
hittar du:
max_execution_time värde1 värde2
Det är hur långt tid du har satt att ett kommando (jobb, sida) (värde1) får köra samt hur långt tid installationen tillåter (har satt) (värde2) tiden. Är denna för kort stoppas cron. Har man många moduler som gör tunga saker kan tiden ta slut.
Då återstår att räkna ut vilken modul det är som bråkar. Tyvärr varierar kvaliteten väldigt mellan olika moduler :(
Verkar ta för lång tid....
får en lång lista på sidan då jag kört cron.....Warning: MySQL server has gone away query: SELECT * FROM system WHERE type = 'theme' in /home/my-site/public_html/includes/database.mysql.inc on line 128...
Får testa att ladda upp en annan databas som funkar att köra cron på xampp på min dator...tyvärr är det en äldre version så jag får komplettera den så den blir lika den på nätet.
Tänkte bara om det var nåt enkelt så hade man kunnat fixa den aktuella sidan på nätet och slippa ta en gammal version, för gissar att Cron är viktigt att få till så den körs.
mvh jessica
Nu har jag kommit åt senaste
Nu har jag kommit åt senaste loggningarna och detta visade....Cron has been running for more than an hour and is most likely stuck.
Nån aning hur jag går vidare?
mvh Jessica
Säger tyvärr inte så mycket
Felmeddelandet du får säger tyvärr inte så mycket. Det betyder bara att cron hittar att det startat (det finns en semafor) men inte att det slutat snyggt (semaforen har inte tagits bort). Cron har alltså kraschat på något sätt innan det kom till slutet...
Jag tror att du måste börja försöka leta reda på vilken modul det är som kraschar. Själv hade jag börjat med att ta reda på vilka av modulerna du har som hänger på sig på cron-hooken.
$ cd /dinsökväg/site/all/modules
$ grep _cron */* | grep function
$ grep _cron */*/* | grep function
Borde räcka... (Jag förutsätter att det är någon sort Linux variant som körs. Annars borde man kunna göra samma sak med en filhanterare)
Hos mig blir det:
$ grep _cron */* | grep function
image/image.module:function image_cron() {
ldap_integration/ldapauth.module:function ldapauth_cron() {
mailhandler/mailhandler.module:function mailhandler_cron() {
webfm/webfm.module:function webfm_cron() {
$ grep _cron */*/* | grep function
filefield/filefield_meta/filefield_meta.module:function filefield_meta_cron() {
Sedan hade jag letat på Drupal.org efter om det finns något dokumenterat om problem med cron för dessa moduler.
I fallet ovan hos mig alltså modulerna: "image" "ldap_integration" "mailhandler" "webfom" samt "filefield"
Kanske inte den bästa metoden men den funkar... :)
Annars kan du helt enkelt bara söka bland Drupals grupper efter problem med cron.
/Thomas
Tackar :)
Då ska jag fortsätta leta på nätet :)
Nåt som dök upp nu i huvudet är ju att cron fungerar då jag kör den på xampp men alltså inte då jag för över den på manufrog....undrar om jag ska ladda upp alla moduler jag har på den lokala så att det är samma versioner som på den på nätet som låser sig :)
MVH Jessica