Volledig pad bepalen voor cronjob
Code (php)
1
2
3
2
3
include "/bla/bla/bla/public_html/inc/config.inc.php";
include "/bla/bla/bla/public_html/inc/functions.inc.php";
include "/bla/bla/bla/public_html/inc/database.inc.php";
include "/bla/bla/bla/public_html/inc/functions.inc.php";
include "/bla/bla/bla/public_html/inc/database.inc.php";
Nu moet ik dus het hele volledige pad gebruiken in de include(), anders zullen de bestanden niet geincludeerd kunnen worden (cronjobs draaien onder een andere locatie blijkbaar). Hoe kan ik dit veranderen zodat ik niet steeds het hele volledige pad hoef te gebruiken? $_SERVER['DOCUMENT_ROOT'] is ook geen optie.
Wat dan wel?
$path = '/bla/bla/bla/public_html/inc/';
include $path . 'config.inc.php';
enz.
Daar kom je niet onderuit denk ik. Hoe moet php het pad van iets bepalen waarvan het niet weet waar het staat?
- Mark - op 25/10/2011 12:02:38:
Daar kom je niet onderuit denk ik. Hoe moet php het pad van iets bepalen waarvan het niet weet waar het staat?
Misschien dat er een tof truukje is? Er zijn vast wel meer mensen op dit forum die cronjobjes gebruiken, en ook hier tegenaan liepen.
Het lijkt mij erg hinderlijk als je van hosting verhuist, en je moet het volledige pad steeds aanpassen.
Gewijzigd op 25/10/2011 12:07:37 door - Ariën -
Maar waarschijnlijk gebruik jij geen Zend Framework en een los script dus en dan wordt het toch lastig..
Kees Schepers op 25/10/2011 12:15:26:
Maar waarschijnlijk gebruik jij geen Zend Framework en een los script dus en dan wordt het toch lastig..
correct...
is er echt geen oplossing voor? Desnoods misschien met bash ofzo.
Ik heb dus een eigen CMS, en zit te denken aan een mogelijkheid voor een cronjob om dingen op te ruimen, optimaliseren etc, en daarbij is het voor een gebruiker niet te doen om steeds het volledige pad te bepalen als ze van hosting veranderen, omdat ik ook beginners heb die dat niet snappen.
Ej, wauw...
Voglens de heren op GoT zou dit moeten werken:
Vanavond eens uittesten, bevindingen laat ik nog wel weten :-)
Gewijzigd op 25/10/2011 12:24:32 door - Ariën -
Dus stel het volledige pad is:
/bla/bla/bla/public_html/inc/
Dan toon je op het scherm zoiets als:
Kopieer en plak de onderstaande code in de cronjob:
$path = '/bla/bla/bla/public_html/inc/';
include $path . 'config.inc.php';
enz.
enz.
Toevoeging op 25/10/2011 12:24:16:
oh het is al opgelost zie ik
Ozzie PHP op 25/10/2011 12:23:45:
Misschien bij de installatie het volledige pad uitlezen en dan "instructies" geven aan de gebruiker.
Zou anders wel kunnen, maar ik zie nog best wel een paar gebruikers de boel in Word alles aanpassen :+ :x
Eerst maar bovenstaande oplossing uittesten ;-)
Gewijzigd op 25/10/2011 12:26:55 door - Ariën -
:p wel weer wat nieuws geleerd want daar zou ik dus niet zijn opgekomen.
Geen php aanroepen met de cronjob, maar een zelf geschreven shellscript. In dat shellscript eerst een cd (change directory) naar de plaats waar het php bestand staat. Dan met het script php starten.
- Mark - op 25/10/2011 12:40:21:
maar als de webhost een aparte server heeft die het cronjobs systeem host dan werkt het niet meer zou ik zeggen.
Dat is nieuw voor mij.
- SanThe - op 25/10/2011 13:44:14:
Geen php aanroepen met de cronjob, maar een zelf geschreven shellscript. In dat shellscript eerst een cd (change directory) naar de plaats waar het php bestand staat. Dan met het script php starten.
Dit kan je toch ook in het cron commando opnemen, i.p.v. een shell-script?
Gewijzigd op 25/10/2011 16:59:21 door - Ariën -
- Aar - op 25/10/2011 16:56:35:
Inderdaad, niet aan gedacht.
ik gebruik altijd dirname(_FILE_)
getcwd.
Toevoeging op 05/12/2011 20:59:46:
@niels, je kan denk ik dan beter gebruik maken van getcwd.
@niels, je kan denk ik dan beter gebruik maken van Toevoeging op 05/12/2011 20:59:46:
@niels, je kan denk ik dan beter gebruik maken van getcwd.
De overige opties in dit topic voldoen verder ook.