cronjobs und php_safe_mode
lixx
- php
Hallo!
Ich habe folgendes Problem: ich möchte mittels cronjob eine php-datei ausführen lassen aber bekomme folgende Meldung:
"
PHP Warning: ini_set(): SAFE MODE Restriction in effect. The script whose uid is 10005 is not allowed to access /var/www/vhosts/dmain.com owned by uid 0 in /var/www/vhosts/dmain.com/httpdocs/index.php on line 25
"
Jetzt habe ich gelesen, dass cronjobs unter dem Benutzer ausgeführt werden, der ihn anlgegt. In dem Fall ist es der Benutzer "ms". Die Auszuführende Datei hat die Rechte des ms-Benutzers. In der vhost.conf-Datei ist safe_mode auf Off gesetzt. Lasse ich mir die phpinfo() ausgeben steht safe_mode wieder auf On.
Muß ich für Cronjobs tatsächlich den safe_mode in der php.ini auf Off setzen?
lg lixx
echo $begrüßung;
Ich habe folgendes Problem: ich möchte mittels cronjob eine php-datei ausführen lassen aber bekomme folgende Meldung:
PHP Warning: ini_set(): SAFE MODE Restriction in effect. The script whose uid is 10005 is not allowed to access /var/www/vhosts/dmain.com owned by uid 0 in /var/www/vhosts/dmain.com/httpdocs/index.php on line 25
Du machst sozusagen mit dem Cronjob einen HTTP-Request. Das ist nicht unbedingt nötig, PHP kann auch direkt aufgerufen werden. Bei Direktaufruf kann man mittels eines Parameters festlegen, welche php.ini verwendet werden soll. Vorausgesetzung ist, dass der Provider PHP nicht nur als Modul installiert hat.
In der vhost.conf-Datei ist safe_mode auf Off gesetzt. Lasse ich mir die phpinfo() ausgeben steht safe_mode wieder auf On. Muß ich für Cronjobs tatsächlich den safe_mode in der php.ini auf Off setzen?
Welche Einstellungen an welchen Stellen geändert werden können, gibt in der Auflistung aller Konfigurationsparameter die Spalte Changeable preis.
echo "$verabschiedung $name";
Du machst sozusagen mit dem Cronjob einen HTTP-Request. Das ist nicht unbedingt nötig, PHP kann auch direkt aufgerufen werden. Bei Direktaufruf kann man mittels eines Parameters festlegen, welche php.ini verwendet werden soll.
Danke, das war schon sehr hilfreich. Jetzt habe ich folgenden Aufruf:
php --php-ini=/var/www/vhosts/domain.com/httpdocs/php.ini /var/www/vhosts/domain.com/httpdocs/index.php
Aber irgendwie scheint er die Datei nicht zu laden. Wenn ich mir die phpinfo() ausgeben lasse ist safe_mode noch immer an.
Vorausgesetzung ist, dass der Provider PHP nicht nur als Modul installiert hat.
Ich bin jetzt mein eigener Herr :)
lg lixx
echo $begrüßung;
Aber irgendwie scheint er die Datei nicht zu laden. Wenn ich mir die phpinfo() ausgeben lasse ist safe_mode noch immer an.
Es gibt eine configure-Option (--enable-safe-mode), die schon beim Kompilieren den Safe Mode einschaltet, es steht aber nicht dabei, dass er sich dann nicht mehr abschalten ließe.
:-) Warte auf PHP 6, dann gibt es dieses Feature nicht mehr.
Was sagt denn phpinfo() noch so? (phpinfo(INFO_GENERAL + INFO_CONFIGURATION) bzw. phpinfo(5) reicht)
echo "$verabschiedung $name";
Danke, hab's jetzt hinbekommen mit
php -c=/var/www/vhosts/domain.com/httpdocs/php.ini /var/www/vhosts/domain.com/httpdocs/index.php
Das "-c" wollte er dafür haben.
lg lixx