safe_mode

hallo mal wieder!

man, ich nehm mir grad irgendwie zu viel vor; andauernd muss ich nachfragen :confused:

immernoch an der galerie beschäftigt habe ich nun alles funktionierend! also zumindest lokal. online muckt der server mit safe_mode herum :frowning:
habe schon versucht per ini_set() das ganze zu lösen, aber irgendwie haut das nich hin!

also ich hab’s mit:
ini_set(‚safe_mode‘, 1);
probiert.
hierbei is auch die frage, wann safe_mode eignetlich aus/ein is!? php.net sagt: „0“ default. ja schön. aber 0 bedeutet in meinem kopf „aus“. und trotzdem klappts weder mit 1, noch 0 :frowning:
auch chmod(); hat keinen access (toll…)

also um das komplette problem zu umreissen:
ich versuche mit mkdir() einen neuen ordner zu erstellen. klappt auch super. aber trotz den gesetzten rechten:
mkdir(„path/“, 0777);
hat der erstelle ordner keine schreibrechte. (nur read und execute) aber die brauche ich um weitere unterordner zu erstellen, bzw. dateien in den ordner zu kopieren.

für denkanstösse wäre ich dankbar!

mfg
Geisterkarle

ps:
achja, meine fehlermeldungen sehen so aus:
Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 32019 is not allowed to access /path/ owned by uid 99 in /path2 on line 12

hallo mal wieder!

man, ich nehm mir grad irgendwie zu viel vor; andauernd muss
ich nachfragen :confused:

immernoch an der galerie beschäftigt habe ich nun alles
funktionierend! also zumindest lokal. online muckt der server
mit safe_mode herum :frowning:
habe schon versucht per ini_set() das ganze zu lösen, aber
irgendwie haut das nich hin!

Das wird auch nichts, safe_mode kann nicht per ini_set gesetzt werden, wäre sonst auch etwas sinnlos…

hierbei is auch die frage, wann safe_mode eignetlich aus/ein
is!? php.net sagt: „0“ default. ja schön. aber 0 bedeutet in
meinem kopf „aus“. und trotzdem klappts weder mit 1, noch 0 :frowning:
auch chmod(); hat keinen access (toll…)

0-aus, 1-an

Schaue mit phpinfo() nach, wo die php.ini liegt, die verwendet wird, ggfs. gibt es mehrere und du änderst die Falsche.
Ansonsten kann man beim Apache-Modul das auch noch in der httpd.conf (oder einer der includierten Dateien) konfigurieren, falls zutreffend, suche mal php_admin_flag in der/den Dateien.

also um das komplette problem zu umreissen:
ich versuche mit mkdir() einen neuen ordner zu erstellen.
klappt auch super. aber trotz den gesetzten rechten:
mkdir(„path/“, 0777);

http://php.net/mkdir: „Der Mode wird ebenfalls mit der aktuellen umask modifiziert, welchen Sie mittels umask() ändern können.“
Also: http://php.net/umask

achja, meine fehlermeldungen sehen so aus:
Warning: mkdir(): SAFE MODE Restriction in effect. The script
whose uid is 32019 is not allowed to access /path/ owned by
uid 99 in /path2 on line 12

In einem per PHP angelegtem Verzeichnis kann (bei aktivierten Safe Mode) nichts geschrieben werden, da das Script dem ftp-Benutzer gehört, das von php erstellte Verzeichnis aber dem Webserver. Entweder safe_mode abschalten, oder keine Verzeichnisse mit PHP anlegen…

Alexander

Schaue mit phpinfo() nach, wo die php.ini liegt, die verwendet
wird, ggfs. gibt es mehrere und du änderst die Falsche.
Ansonsten kann man beim Apache-Modul das auch noch in der
httpd.conf (oder einer der includierten Dateien)
konfigurieren, falls zutreffend, suche mal php_admin_flag in
der/den Dateien.

hm, habe durch meinen provider ein control-panel, in dem ich php-configuration angucken kann. merkwürdigerweise finde ich das:

Directive Local Value Master Value

safe\_mode Off Off

jetzt stellt sich natürlich mir die frage, weshalb des trotzdem nich geht :frowning:

also um das komplette problem zu umreissen:
ich versuche mit mkdir() einen neuen ordner zu erstellen.
klappt auch super. aber trotz den gesetzten rechten:
mkdir(„path/“, 0777);

http://php.net/mkdir: „Der Mode wird ebenfalls mit der
aktuellen umask modifiziert, welchen Sie mittels umask()
ändern können.“
Also: http://php.net/umask

öh… was is umask()? da is php.net mal wieder „sehr genau“…

achja, meine fehlermeldungen sehen so aus:
Warning: mkdir(): SAFE MODE Restriction in effect. The script
whose uid is 32019 is not allowed to access /path/ owned by
uid 99 in /path2 on line 12

In einem per PHP angelegtem Verzeichnis kann (bei aktivierten
Safe Mode) nichts geschrieben werden, da das Script dem
ftp-Benutzer gehört, das von php erstellte Verzeichnis aber
dem Webserver. Entweder safe_mode abschalten, oder keine
Verzeichnisse mit PHP anlegen…

kann das ganze natürlich auch ohne verzeichnisse lösen, aber dann is das ganze total unübersichtlich. wäre schon schön, wenn das mal klappen würde!

mfg

hm, habe durch meinen provider ein control-panel, in dem ich
php-configuration angucken kann. merkwürdigerweise finde ich
das:

Directive Local Value Master Value

safe_mode Off Off

Ist Ok, dann sollte aber die Fehlermeldung von ganz unten vom Originalposting nicht kommen.

öh… was is umask()? da is php.net mal wieder „sehr genau“…

Die Rechte, die do bei mkdir angibst, werden mit diesem Wert vorher maskiert, d.h. wenn in umask ein Bit gesetzt ist, wird dieses beim mkdir-Recht entfernt. umask ist default 0022, was kein Schreibrecht für Gruppe und Welt bedeutet.
Kurz: Schreib ein umask(0000) vor das mkdir :wink:

Warning: mkdir(): SAFE MODE Restriction in effect. The script
whose uid is 32019 is not allowed to access /path/ owned by
uid 99 in /path2 on line 12

kann das ganze natürlich auch ohne verzeichnisse lösen, aber
dann is das ganze total unübersichtlich. wäre schon schön,
wenn das mal klappen würde!

Wenn safe_mode aus ist, KANN diese Fehlermeldung nicht kommen, und dann kannst du auch Verzeichnisse anlegen und darin schreiben. Mache einmal phpinfo() dort, wo dein Script ausgeführt wird, wahrscheinlich ist die Anzeige im Control Panel falsch, weil da das phpinfo() in einem anderen Kontext läuft. Falls das dieses Confixxx ist, das schreibt in der Include-Dateien des Apache, soweit ich weiss…

Alexander

Ergänzend:
http://www.dclp-faq.de/q/q-konfiguration-safe-mode.html