PHPscript uitvoeren in CronJob

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wim van de Wetering

Wim van de Wetering

29/01/2015 18:49:15
Quote Anchor link
Hallo,
Jaren geleden heb ik eens uitgezocht hoe je automatisch een script kunt laten uitvoeren op uur en tijd. Ik laat dan via zo'n cronjob (putty) een php script verwerken. Dat heeft altijd gewerkt maar nu niet meer. Het enigste wat er veranderd is, is een ssl certificaat. Maar ik denk niet dat hem dat gaat worden.
Als ik het script met de hand uitvoer dan komen er geen foutmeldingen en hij doet zijn werk prima behalve 's-ochtends vroeg om 0500 dan gaat het niet automatisch via een cronjob. Navraag bij de provider.... wij leveren géén ondersteuning....
Misschien weet een van jullie raad?
Dus eigenlijk vraag ik wat de mogelijkheden zijn dat een script niet via cronjob loopt.

Dit heb ik al jaren in de cron staan:
00 05 * * * php /lang_pad/scriptje.php

Alvast bedankt.
Wim
 
PHP hulp

PHP hulp

27/11/2024 06:52:03
 
Ivo P

Ivo P

29/01/2015 19:03:39
Quote Anchor link
Path naar de executable php volledig noemen

Fdus ipv php /usr/bin/php, of waar php op jouw server staat.
dat achterhaal je met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
which php


Toevoeging op 29/01/2015 19:04:42:

Cert staat hier los van, tenzij jouw script vervolgens weer en website benadert
 
- Ariën  -
Beheerder

- Ariën -

29/01/2015 19:09:11
Quote Anchor link
Verder kan het geen kwaad om te kijken in je root-mailadres, of daar een log van je cron staat met de output.
Het kan zijn dat deze om onbepaalde redenen een error uitspuugt.

Als je geen toegang tot de mail hebt, dan kan je ook de output van de cron loggen in een .txt fike:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
00 05 * * * /usr/bin/php /home/USERNAME/DOMEIN.nl/lang_pad/scriptje.php >> /home/USERNAME/DOMEIN.nl/log.txt 2>&1


Het volledige pad naar je PHP-script moet je zelf even achterhalen.
 
Ivo P

Ivo P

29/01/2015 20:44:08
Quote Anchor link
of me mailto: een adres opnemen waar de output heen mag

http://www.cyberciti.biz/faq/linux-unix-crontab-change-mailto-settings/
 
Wim van de Wetering

Wim van de Wetering

29/01/2015 20:51:54
Quote Anchor link
Hallo,
which php
gaf het zelfde resultaat als wat Ivo opgaf.
Verder heb ik het pad naar php volgens jullie instructies aangepast en een log eraan geplakt. Morgenvroeg om 0500 moet dat dus goedgaan!!
Kun je mij zeggen hoe ik naar die root-mailadres ga? Als ik ls -ahl doe dan staat er wel root maar ik heb geen permissies daarvoor.

Thanks so far!
 
- Ariën  -
Beheerder

- Ariën -

29/01/2015 21:58:58
Quote Anchor link
Gebruik je DirectAdmin op de server, dan kan je vaak met je username en je password inloggen in de webmail.
 
Wim van de Wetering

Wim van de Wetering

30/01/2015 16:58:53
Quote Anchor link
Hallo.
Het heeft niet gwerkt maar ik heb nu wél een log met een heleboel fouten. Het
gaat vooral over paden die onvindbaar zijn. Mag ik hier de paden met jullie delen?
Mijn hoofdpad begint met een / klopt dat?
Verder zijn er inclusions naar ../menu/contact/inlude.php enzo.
Ook deze kan ie niet vinden. Maar zoals ik al zei: met de hand wél.
Hoe adresseer je paden in een sript dat door een cronjob aangeroepen word?

Please!?
Gewijzigd op 30/01/2015 16:59:37 door Wim van de Wetering
 
- SanThe -

- SanThe -

30/01/2015 17:07:48
Quote Anchor link
Een cronjob heeft geen contact met de webserver.
Dus alle path's moeten vanuit de root van de server zijn en niet vanuit de webroot.
 
Wim van de Wetering

Wim van de Wetering

30/01/2015 17:55:50
Quote Anchor link
dus niet deze:
include ("../menu/even/tage.php");
maar deze?
include("/home/vhosting/h/vhostNUMMER/domains/mijndomein.nl/htdocs/www/menu/even/tage.php");
of toch niet beginnen met een backslash?
include("home/vhosting/h/vhostNUMMER/domains/mijndomein.nl/htdocs/www/menu/even/tage.php");

Laat maar weten en bijvoorbaat ontzettend bedankt dat je mij vooruit wilt helpen.
 
- SanThe -

- SanThe -

30/01/2015 17:58:39
Quote Anchor link
include("/home/vhosting/h/vhostNUMMER/domains/mijndomein.nl/htdocs/www/menu/even/tage.php");
 
Wim van de Wetering

Wim van de Wetering

30/01/2015 18:05:20
Quote Anchor link
Ik ga het veranderen en morgenvroeg 0500 weet ik meer. Tot dan!
 
- SanThe -

- SanThe -

30/01/2015 18:12:26
Quote Anchor link
Je kan ook de tijd in de cronjob tijdelijk veranderen dan weet je het direct.
 
Wim van de Wetering

Wim van de Wetering

30/01/2015 18:53:05
Quote Anchor link
Dat had gekunnen en nu dat je mij erop wijst..... heb ik het gedaan.
WOW!
Ik ben hier echt te lang mee bezig geweest.
Fijn dat jullie mij weer op het rechte pad hebben gebracht.
Morgenvroeg toch nog even afwachten maar de melding van 1845u
was er in "vol ornaat"
G O E I E !!

Toevoeging op 31/01/2015 05:27:15:

En om 0500... Mooi wark!
 
Wim van de Wetering

Wim van de Wetering

03/05/2015 12:36:47
Quote Anchor link
Nou dat script heeft al die tijd goed gewerkt. En éénmaal een foutmelding in het logbestand. Maar.... nu is de provider overgegaan naar php5.5 en het script werkt niet meer sterker nog, in het logbestand komt het hele script te staan. Waar heb ik het fout gedaan?
Groet,
Wim
 
Thomas van den Heuvel

Thomas van den Heuvel

03/05/2015 12:51:21
Quote Anchor link
Controleer of short_open_tag uit staat, bijvoorbeeld met phpinfo().

Dan werkt dit niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
// deze code wordt niet als PHP geinterepreteerd
?>


<?= /* en dit ook niet */ ?>


Uit compatibiliteitsoverwegingen kun je beter altijd je PHP-tags uitschrijven, omdat dat altijd werkt, ongeacht de waarde van de instelling short_open_tag.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// dit werkt altijd
?>


<?php echo 'something' /* en dit ook */ ?>
 
Obelix Idefix

Obelix Idefix

03/05/2015 13:26:51
Quote Anchor link
Of er staat mogelijk verouderde code in het script dat je aanroept.
 
Wim van de Wetering

Wim van de Wetering

03/05/2015 17:08:34
Quote Anchor link
short open tag staat op ON

Toevoeging op 03/05/2015 20:18:54:

Ik heb, eventuele foutmeldingen dus afgevangen in een log. Dat heeft altijd gewerkt maar nu komt er in die log alleen het komplete script te staan zonder maar één error of uitleg. De migratie naar 5.5 heeft mysql geheel deprecated. Ik heb het nu naar MySqli geschreven en denk dat dat de fout is geweest. Maar dan blijft het toch een vreemde log. Morgenvroeg weet ik of ik op het juiste pad zit.
OwJa... ik heb er
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php van gemaakt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.