PCExtreme Cronjobs

Pagina: 1
Acties:
  • 599 views sinds 30-01-2008
  • Reageer

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 01-12 20:33
Hallo,
Wij hebben een resellerpakket bij PCExtreme en ik heb een probleem met cronjobs. Het is een linux server, en wij kunnen alles regelen via DirectAdmin. Daarin kunnen dus ook cronjobs ingesteld worden. Echter heb ik volgens mij alle vormen al geprobeerd, mar de cronjob wil maar niet werken. In het script staan het volgende:
code:
1
2
3
4
5
<?php
    include("./include/db_connect.php");
    $nu = date("d-m-Y H:i:s");
    $result = mysql_query("UPDATE test SET datum='$nu' WHERE id='1'") or die(mysql_error());
?>

Ik heb ook al geprobeerd om regels als #!/usr/local/bin/php bovenaan het script te zetten, maar dat werkt dus ook niet. De regels die ik heb geprobeerd in directadmin zijn:

wget -O /dev/null -q /home/*****/domains/******/public_html/test2.php
wget /home/*****/domains/******/public_html/test2.php
php /home/*****/domains/******/public_html/test2.php
/usr/local/lib/php /home/*****/domains/******/public_html/test2.php
/usr/local/bin/php /home/*****/domains/******/public_html/test2.php
/home/*****/domains/******/public_html/test2.php

Het pad /home/*****/domains/******/public_html/ klopt iig, dat heb ik direct uit phpinfo() gekopieerd.

Als ik dus gewoon in de browser naar test2.php ga dan wordt de datum wel geupdate in de database, dus het script werkt wel gewoon. Iemand een idee wat ik verder nog kan proberen?

[ Voor 4% gewijzigd door avdwerf op 29-10-2007 10:07 ]


  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 23:19

DizzyWeb

Ondertiteld

Die wget gaat alleen werken als je de publieke URL invoert. Wil je lokaal draaien, dan moet je 'm aanroepen met php.

  • BKJ
  • Registratie: April 2000
  • Laatst online: 27-10 15:19

BKJ

Ook zou ik de absolute url gebruiken in de include ipv de relatieve. Het script wordt namelijk vanaf een andere locatie uitgevoerd en zoekt dan naar de include file in de huidige dir ipv in je webdir.

Kamer huren


  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 01-12 20:33
Thnx, heb dat include verhaal weggehaald en gewoon gelijk in het bestandje connectie gemaakt met de database, en het werkt nu! thnx!

  • Arjen Tempel
  • Registratie: Januari 2002
  • Niet online
De reden dat je include niet werkte is dat DirectAdmin PHP cronjobs uitvoert vanuit je home directory (meestal /home/gebruikersnaam/) en niet vanuit de directory waarin het PHP script staat.

  • tsjaar
  • Registratie: December 2003
  • Laatst online: 24-03 18:59
Kun je aangeven wat je nu als pad hebt ingesteld bij deze cronjob. Ik zit nl met hetzelfde probleem (ook bij pcextreme). Het lijkt erop dat het pad naar php niet goed staat o.i.d.

De cron wordt wel uitgevoerd, maar de php wordt niet correct uitgevoerd. Ik doe geen include o.i.d. (alleen een sendmail en een )

Ik heb de volgende mogelijkheden geprobeerd:
zonder php:
/home/.../domains/.../public_html/pingcronjob.php
krijg ik de volgende fout in de mail:
/home/.../domains/.../public_html/pingcronjob.php: line 1: ?php
: No such file or directory
/home/.../domains/.../public_html/pingcronjob.php: line 2: syntax
error near unexpected token `('
/home/.../domains/.../public_html/pingcronjob.php: line 2: `
$domainList = array(); // lijst met domeinnamen zonder http://
'


Met php ervoor:
php /home/.../domains/.../public_html/pingcronjob.php
Dan krijg ik de volgende fout:
/bin/sh: php: command not found

Iemand een idee?

  • Thralas
  • Registratie: December 2002
  • Laatst online: 23:25
Geef het volledige pad naar php op, waarschijnlijk /usr/bin/php of /usr/local/bin/php.
Je kunt ook #!/pad/naar/bin/php op regel 1 van je script zetten, dan kun je hem zo aanroepen - waarschijnlijk moet hij dan wel executable (chmod +x) zijn

  • tsjaar
  • Registratie: December 2003
  • Laatst online: 24-03 18:59
Ik heb vanalles geprobeerd, maar ik krijg telkens een fout in mijn mail :-( :

/bin/sh: /usr/local/lib/bin/php: No such file or directory
/bin/sh: /usr/local/lib/php: is a directory
/bin/sh: /usr/bin/php: No such file or directory
/usr/local/bin/php /home/.../domains/.../public_html/cronjob.php > can't open file

Volgens deze pagina: http://forums.digitalpoint.com/showthread.php?t=14193 zou phpinfo mij vertellen wat het pad naar php is, dmv ./configure' '--with-prefix=/usr/' (dan zou /usr/bin het pad naar php zijn.) Bij mij staat er './configure' '--with-apxs2' '--with-curl=/usr/local/lib' En die geeft ook een fout.

Het bestand heeft rechten 777, dus dat kan toch het probleem niet zijn. Er gebeurt verder niks bijzonders, alleen een mail actie. En het script werkt wel als ik het aanroep via de browser.

Enig idee waar het nu aan ligt, is het pad niet goed, of is het iets anders?

  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

Dit heeft o.a. te maken met de directory rechten. PHP kan je file niet bereiken. Ik heb het probleem ook wel eens gehad. Je kunt het omzeilen door met wget de pagina te laden via de externe interface, als dat mogelijk is met de firewall instellingen:
wget -O /dev/null http://******/test2.php

Wat je ook zou kunnen doen is het doen via je home directory. De cronjob draait onder jouw user, dus dat betekent dat ~/public_html/test2.php ook wel zou moeten werken, dan heb je iig geen problemen met die rechten.

Je kunt het juiste pad naar php krijgen door in de shell te typen:
which php [enter]
Dan krijg je het pad naar de juiste binary.

Ik hoop dat je wat kunt met deze informatie!

JayGTeam (213177)

Pagina: 1