[Hilfe] php.ini safe_mode auf Domain ???

Bash, Shell, PHP, Python, Perl, CGI
Sonreir
Posts: 3
Joined: 2010-01-02 18:16

[Hilfe] php.ini safe_mode auf Domain ???

Post by Sonreir »

Hallo,

nutze einen CronJob für ein Script auf einer Domain. Das Problem ist, dass mir der Cron jedesmal sagt, dass safe_mode On ist und ich es ausschalten soll.
Habe einen dedicated server mit Plesk. Dort habe ich schon mal bei einer Domain Creation "safe_mode" ausgeschaltet. Apache restart --> keine Lösung. Ok, das nächste ist, dass ich 3 php.ini's habe
etc/php5/cli/php.ini
etc/php5/fastcgi/php.ini
etc/php5/apache2/php.ini

Herausgefunden habe ich, dass das Skript sich nicht daran hält das safe_mode Off aus der ..php5/apache2/php.ini zu nehmen, sondern aus der etc/php5/cli/php.ini.
Habe das safe_mode in der cli/php.ini auf Off gestellt und es hat Alles funktioniert.
Jedoch, will ich das nicht als globale Einstellung für Alle haben, sondern nur für diese Domain und nicht den ganzen Server. Meine Frage ist nun, wie kann ich es schaffen dem CronJob zu sagen, dass safe_mode Off ist ? Habe sogar probiert eine php.ini in das Hauptverzeichnis meiner Domain zu kopieren mit der Einstellung "safe_mode Off...hat aber nichts gebracht.
Zur Info vielleicht noch,...den CronJob lasse ich vom user wwwrun machen, ...sollte ich einen anderen User nehmen...wenn ja, welchen ?
Und das Wichtigste,...wie kann ich die Einstellung von der cli/php.ini nur auf eine bestimmte Domain abbilden und nicht auf den ganzen Server.

Danke schon mal im Voraus.

Grüsse
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53

Re: [Hilfe] php.ini safe_mode auf Domain ???

Post by Roger Wilco »

Sonreir wrote:Meine Frage ist nun, wie kann ich es schaffen dem CronJob zu sagen, dass safe_mode Off ist ?

Code: Select all

# php --help|grep -- -d
  -d foo[=bar]     Define INI entry foo with value 'bar'
Sonreir wrote:Zur Info vielleicht noch,...den CronJob lasse ich vom user wwwrun machen, ...sollte ich einen anderen User nehmen...wenn ja, welchen ?
Wenn das Skript keine Dateien lesen oder schreiben muss, die dem Benutzer wwwrun gehören, solltest du es unter einem eigenen Benutzer laufen lassen und dessen Rechte so weit wie möglich einschränken (z. B. keine interaktive Shell zuweisen, leeres Homeverzeichnis usw.).
Sonreir
Posts: 3
Joined: 2010-01-02 18:16

Re: [Hilfe] php.ini safe_mode auf Domain ???

Post by Sonreir »

Danke für die Antwort. Habe ich das dann richtig verstanden das so einzufügen ?

Cron:

cd /srv/www/vhosts/domain/httpdocs/directory; /usr/bin/php -q -d safe_mode[=Off] script.php

In jener Art und Weise ging es nämlich leider nicht.

Grüsse
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53

Re: [Hilfe] php.ini safe_mode auf Domain ???

Post by Roger Wilco »

Eckige Klammern bezeichnen i. d. R. optionale Argumente. Bei deinem Aufruf sollten diese nicht mehr vorkommen.
Sonreir
Posts: 3
Joined: 2010-01-02 18:16

Re: [Hilfe] php.ini safe_mode auf Domain ???

Post by Sonreir »

Super! Danke, funktioniert !

Grüsse
Last edited by Sonreir on 2010-01-02 20:54, edited 1 time in total.
danton
Posts: 47
Joined: 2006-01-10 17:45

Re: [Hilfe] php.ini safe_mode auf Domain ???

Post by danton »

Also erst einmal bezieht sich die /etc/php5/cli/php.ini nur auf die Kommando-Zeilen-Version von PHP, die nicht vom Webserver verwendet wird (dafür sind die anderen beiden da, je nach Verzeichnis, ob PHP als Apache-Modul oder als CGI ausgeführt wird).
Genauso, wie du per Parameter den Safe-Mode per Kommandozeile geändert hast, könnte das auch jeder andere, der Shell-Zugriff auf deinen Server hat und PHP-Scripte auf der Kommandozeile ausführen will. Daher schadet es auch nix, das direkt in der php.ini zu verankern.
Im übrigens ist safe-mode in PHP eine trügerische Sicherheit, die nicht wirklich effektiv ist. Daher wird der Safe-Mode in PHP6 auch komplett abgeschafft. Sofern noch andere Script-Sprachen wie Perl oder Python auf deinem Server installiert ist, ist der Safe-Mode sowieso hinfällig, da er nur in PHP funktioniert und mit den anderen Scriptsprachen daher leicht zu umgehen ist. Und auch innerhalb von PHP hat es immer wieder Mittel und Wege gegeben, diesen zu umgehen (mal mehr, mal weniger aufwendig). Statt Safe-Mode solltest du dir daher lieber Gedanken machen, wie du die einzelnen Webs auf deinem Server gegeneinander abschirmst und dürftest dann auch weniger Probleme haben, wenn du neue Scripte auf deinem Server laufen lassen willst.