crontab uitvoeren via Plesk?

Status
Niet open voor verdere reacties.

Goliath

Gebruiker
Lid geworden
15 feb 2002
Berichten
125
Ik heb in het Plesk controlepaneel bij Crontab een taak aangemaakt waarbij om de x-aantal tijd een PHP-script moet gestart worden. Dat werkt perfect. Tot daar dus geen problemen. Maar als ik de directory waarin dat PHP-script staat beveilig met een wachtwoord dan lukt het niet meer. (error 401 Authorization Required). Dat lijkt me ook logisch, maar hoe kan ik er toch voor zorgen dat dit werkt?
 
Goliath zei:
Ik heb in het Plesk controlepaneel bij Crontab een taak aangemaakt waarbij om de x-aantal tijd een PHP-script moet gestart worden. Dat werkt perfect. Tot daar dus geen problemen. Maar als ik de directory waarin dat PHP-script staat beveilig met een wachtwoord dan lukt het niet meer. (error 401 Authorization Required). Dat lijkt me ook logisch, maar hoe kan ik er toch voor zorgen dat dit werkt?
Plesk ondersteund het niet dat je je kunt authorizeren in crontabs. Je zult dan zelf crontabs handmatig toe moeten voegen.

Wat je kunt doen, is het script in een niet beveiligde map zetten, maar wel in een map die niet toegankelijk is vanuit de browser (ik ga ervan uit dat dit de reden is dat er een wachtwoord op staat). Als je dan problemen met paden hebt (include (), require (), werkt niet, kijk dan eens naar chdir ()
 
Wanneer ik het script plaats in een map die niet toegankelijk is vanaf een webbrowser, krijg ik van Cron daemon de melding "404 File does not exist". Ik heb mijn cron jobs altijd gemaakt door de command regel te laten voorafgaan door GET. Misschien moet het op deze locatie met het commando PHP, maar dan krijg ik weer de melding "No input file specified".
 
Laatst bewerkt:
Dit is ook een optie: Je zet het bestand gewoon in de mappen die geopent kunnen worden door de webbrowser, maar je zet bovenaan het bestandje dat uitgevoert wordt door de cron:
PHP:
<?php

if ( $_SERVER['REMOTE_ADDR'] != '127.0.0.1' ) // Als het script niet uitgevoert wordt vanaf localhost (IP: 127.0.0.1)...
{
  header ( 'HTTP/1.0 404 Not Found ' ); // ..doe dan alsof dit bestand niet bestaat door 404 te sturen
  die ();
}

// Hier de rest van het script..

?>
 
Ik heb alles in een niet publiek toegankelijke map op de webserver geplaatst en daarmee is het probleem verholpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan