php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
SAFE_MODE nach Änderung an php.ini


 
meistereder
18-12-2008, 11:18 
 
Hallo Zusammen,

Habe eine Änderung an der php.ini vornehmen wollen: memory_limit = 8M auf z.B. 256M erhöhen, da ich mit einem Script Zippen will, und das daher viel Speicher braucht.
Wenn ich die php.ini dann wieder speichere, den apache neu starte, läuft ärgerlicherweise alles unter dem SAFE_MODE.

Fehler Meldung beim start z.B. eines Sessionscripts:
Warning: session_start() [function.session-start]: SAFE MODE Restriction in effect. The script whose uid is 501 is not allowed to access /var/tmp/ owned by uid 0 in

Mein Zipper-Script funktioniert jetzt jedoch einwandfrei, nutzt mir aber nichts, da ich mit dem Safe_mode nichts anfangen kann.

Das ganze Problem muss Aufgrund ausführlicher Test und Pröbeleien an den Berechtigungen der geänderten php.ini Datei liegen. Lade ich nämlich die gebackupte original php.ini datei zurück und starte den apache neu, dann ist der SAFE_MODE wieder aus.

Berechtigungen: schaue ich mir mit php die Berechtigungen an, so hat die Original-php.ini 664, die geänderte php.ini hat 775. Leider verweigert mir das System die Änderung der Rechte an der php.ini per chmod:

Warning: chmod() [function.chmod]: Operation not permitted
Auch mit Tricks geht's nicht... :-(

Unter früheren Betriebssystemen konnte man unter "Informationen" die Berechtigungen einer Datei an "System" übergeben. Unter OS 10.5.6 suche ich dies leider vergeblich, obwohl "System" ab und zu auftaucht.
Die jetzigen Berechtigungen im Finder für die Original php.ini sind:
-Ich = Lesen und Schreiben, admin = Lesen und Schreiben, everyonne: Lesen
die geänderte php.ini zeigt dieselben Rechte an.
Lasse ich z.B. die benachbarte Datei pool.conf anzeigen, steht hier:
System = Lesen und Schreiben, admin= Lesen und Schreiben, everyone: Lesen

Wie kann ich die geänderte php.ini unter Leopard OS10.5.6 wieder dem System übergeben?? Unter älteren OS ging das unter "Sharing und Zugriffsrechte".
Weiss jemand weiter?

Angaben zu meinem System: Mac OS10.5.6, Intel Quad, php5.2.6 im neuesten xampp packet

PS: save_mode ist in php.ini natürlich auf OFF gestellt...

 
onemorenerd
18-12-2008, 13:47 
 
Diese php.ini mit SafeMode=Off wird offensichtlich gar nicht benutzt. Die Ausgabe von phpinfo() müßte das bestätigen.
System ist der "Anzeigename" von root. Versuchs mit chown.

 
meistereder
18-12-2008, 14:30 
 
Ein schnelltest hat leider nichts gebracht:

Warning: chown() [function.chown]: Operation not permitted

oder

Warning: chown() [function.chown]: Unable to find uid for 501

chown scheint mir jedoch in die richtige Richtung zu gehen.
hab als User "root", plus numerische ID's (664) verwendet. Muss jetzt leider ausm Haus, werd morgen weitertesten.

mit dem scriptchen auf php.net:

// Check the result
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

krieg ich ne Ausgabe: [uid] => 501 [gid]
Muss die Berechtigung für's System auf 501 sein? 501 hat er jeodch auch nicht akzeptiert.

php.ini wird übrigens normal geladen, soweit ich das aus der phpinfo entnehmen kann. Dort schaltet er mir den save_mod jedoch explizit auf ON, obwohls in php.ini ausgeschaltet ist.
??

Über alle Antworten/Vorschläge freue ich mich natürlich jetzt schon, vielen Dank!

Grüsse Guido

 
onemorenerd
18-12-2008, 15:23 
 
$stat['uid'] ist die User-ID des Owners! Du verwechselst das mit den Filepermissions.

Einfaches chmod kann nicht funktionieren. Du hast doch bereits festgestellt, dass nur Admins und Root schreiben dürfen. Also: sudo chmod!

Statt die php.ini auszutauschen und dann bei der neuen Owner und Permissions hinzufummeln, könntest du die alte auch einfach verändern. Natürlich auch nur als Admin oder Root, also mit sudo cat neue-php.ini > php.ini.

 
meistereder
19-12-2008, 13:57 
 
Hallo onemorenerd

Hab die Berechtigungen geändert. Hab in der Shell folgenden Befehl eingegeben:

chmod 664 /applications/xampp/etc/php.ini.txt

Wenn ich nun die Berechtigungen anschaue, hat die alte sowie die neue php.ini nun 664.

php startet aber immernoch im SAVE_MODE.

Statt die php.ini auszutauschen und dann bei der neuen Owner und Permissions hinzufummeln, könntest du die alte auch einfach verändern. Natürlich auch nur als Admin oder Root, also mit sudo cat neue-php.ini > php.ini.

Das hab ich versucht. Ich lade die php.ini.txt einfach in mein TextWarngler, ändere das memory_limit und speichere die Datei wieder. Aber sobald ich sie speichere, werde ich owner der Datei. Ich bin Root und Admin auf der Kiste, ansonsten könnte ich die Datei auch nicht ändern, oder? Ich kann mich ja nicht also Root anmelden. Kann ich die Datei nicht einfach wieder (wie z.B. unter Panther) ans System übergeben?

Kann ich die php.ini auch von der Shell aus ändern?? Mit sudo cat kann ich leider nicht viel anfangen, hab gegoogelt, kann aber mit den gefunden Hinweisen auch nichts anfangen.
Was anderes, das mich beunruhigt: Meine TimeMachine hat gemotzt, dass mein Backup-Volume schreibgeschützt ist. Ich hoffe nur, das jetzt nicht der Berechtigungssalat losgeht...

Grüsse

guido

 
combie
19-12-2008, 14:07 
 
Ich lade die php.ini.txt einfach in mein TextWarngler
.txt .... ???


Was haben die chmod Rechte mit dem safe_mode zu tun?
Richtig! Gar nix!

Und eine OFF Einstellung teleportiert nicht aus eigener Kraft zu ON.
Auch Geister, Psi und andere seltsamme Dinge würde ich ausschließen.

Du baust da Mist, aber KA welchen.

 
meistereder
19-12-2008, 14:14 
 
Wenn du eine bessere Idee hast, wie man die php.ini ändert, dann lass es mich doch wissen.

Den Rest macht das System schon selbst durcheinander: Wie gesagt: kopier ich die Original php.ini-Datei in /applications/xampp/etc/ dann läuft php normal, wenn ich meine geänderte php.ini in /applications/xampp/etc/ speichere, dann ist SAVE_MODE ON, obwohl es OFF ist in der php.ini.
Der einzige Unterschied der Dateien ist das neue Speicherdatum, die Benutzerrechte die sich geändert haben, sowie das memory_limit das ich auf 512MB erhöhe. Unter OS10.5.6 kann man leider nicht mehr unter Command I den Eigentümer der Datei auf SYSTEM setzten.

 
onemorenerd
19-12-2008, 14:21 
 
Original geschrieben von meistereder
Das hab ich versucht. Ich lade die php.ini.txt einfach in mein TextWarngler, ändere das memory_limit und speichere die Datei wieder.Na hoffentlich ohne .txt am Ende!
Aber sobald ich sie speichere, werde ich owner der Datei. Ich bin Root und Admin auf der Kiste, ansonsten könnte ich die Datei auch nicht ändern, oder?Du bist garantiert nicht Root! Tipp mal ins Terminal

id root
id <deinAccountname>

dann weißt du bescheid.

Kann ich die Datei nicht einfach wieder (wie z.B. unter Panther) ans System übergeben?Natürlich, habe ich doch schon gesagt. Geht afaik auch wirklich nur mit chown im Terminal. Keine Ahnung was es da in der Panther-GUI gab. Gibts jedenfalls nicht mehr.

Kann ich die php.ini auch von der Shell aus ändern?? Mit sudo cat kann ich leider nicht viel anfangen, hab gegoogelt, kann aber mit den gefunden Hinweisen auch nichts anfangen.
Dann mach mal ein Terminal auf und tippe

man sudo
man cat

"cat neue-php.ini" gibt den Inhalt der Datei auf der Konsole aus. Mit "> php.ini" wird die Ausgabe von der Konsole in die Datei umgeleitet. Und "sudo" führt das alles als Root aus - vielleicht ist das unnötig, aber es schadet auch nicht.

Was anderes, das mich beunruhigt: Meine TimeMachine hat gemotzt, dass mein Backup-Volume schreibgeschützt ist.Und wenn schon?

chmod -R ugo+rwx /Volumes/<TimeMachineDisk>

 
combie
19-12-2008, 14:24 
 
phpinfo() sagt dir welche php.ini gerade benutzt wird.
Es kann durchaus mehrere im System geben.
Aber eine php.ini.txt wird GANZ SICHER von php ignoriert.

 
meistereder
19-12-2008, 15:52 
 
Hey, hat geklappt, vielen Dank!

Die Sache mit der php.ini und php.ini.txt war Folgende: Wenn ich php.ini per Texteditor ändern will, muss ich meinen Editor ja soweit überlisten, dass er mir die Datei öffnet. Wenn ich .txt hinten anhänge, macht er mir die Datei auf, ich kann die Werte ändern, wieder Speichern und nacher .txt wieder wegnehmen. Deshalb php.ini.txt. Dumm ist nur, dass das System im Hintergrund und Unsichtbar die Endung .txt behält. Wenn ich die Datei dann wieder ins /etc Verzeichnis schiebe und Apache neu starte, wird die geänderte php.ini nicht geladen, was mir phpinfo() und LOADED CONFIGURATION FILE anzeigt, nämlich: none.

Führe ich nun Dein cat Befehl aus, lade ich die php.ini.txt und überschreibe die php.ini was er schön brav macht. Beim Neustart von Apache wird dies nun erkannt und richtig geladen mit den neuen Einstellungen, siehe phpinfo.

Beim Stöbern hab ich noch was anderes entdeckt:

ini_set , ini_get...

Vielleicht kann ich da was Sciptbasierendes basteln, damit mir die Einstellung nur beim zipperscript geändert wird. Mal schauen.

Danke für die Hilfe,

 
meistereder
19-12-2008, 16:02 
 
Für alle, die mal nen Wert einmalig für ein Scirpt verstellen wollen, nutzen doch ini_set.

z.B. ini_set('memory_limit','1024M');
oder ini_set('memory_limit','-1');

...hoffentlich hält's der Server aus,

Grüsse

Guido

 
lennart
19-12-2008, 16:14 
 
Original geschrieben von meistereder
Wenn ich .txt hinten anhänge, macht er mir die Datei auf, ich kann die Werte ändern, wieder Speichern und nacher .txt wieder wegnehmen. Deshalb php.ini.txt. Dumm ist nur, dass das System im Hintergrund und Unsichtbar die Endung .txt behält.

Das sind so Dinge, an denen ich mich freue nirgends mehr ein Windows anfassen zu müssen. :D

 
PHP-Desaster
19-12-2008, 17:03 
 
Das sind so Dinge, an denen ich mich freue nirgends mehr ein Windows anfassen zu müssen. :DAngaben zu meinem System: Mac OS10.5.6, Intel Quad, php5.2.6 im neuesten xampp packetSelbst ein Windows macht nicht so einen Mist :rolleyes:

 
lennart
19-12-2008, 17:06 
 
Ups, sorry.

Dann bin ich auch noch froh keine Mac benutzen zu müssen. :P

Aber machen Macs wirklich standardmäßig irgendwo ein .txt hinter?

 
unset
19-12-2008, 17:08 
 
Manchmal habe ich das Gefühl seit iPod und iPhone sitzen die größten DAUs for shiny-white-and-glossy Kisten ... so ganz subjektiv ;) - schick sehen se ja aus

 
combie
19-12-2008, 17:19 
 
Selbst ein Windows macht nicht so einen Mist
Ach, das hat nix mit Win oder MAC zu tun..
Das ist ein Feature um Mäuschenschubser in die Irre zu leiten.

Nach dem Motto:
Schubs dein Mäuschen und gut ist. Den Rest lass bloß sein. Innereien haben dich nicht zu interessieren.

 
meistereder
19-12-2008, 17:39 
 
Ach, hab nicht so ein grosses Maul.

Des Rätsels Lösung:

Hätt ich php.ini mit dem Systeminternen TextEdit gemacht, wär alles in 5 sekunden erledigt gewesen.
Hätt ich in TextWrangler beim Öffnen die option Enable: All Files anstatt die Default "All Readable Files" gewählt, häts ebenso schnell geklappt.

Langer Rede, kurzer Sinn: für nächstes Mal weiss ichs, ini_set löst das Problem auf die Schnelle im Script und Apple ist doch ne prima Sache. :D

 
combie
19-12-2008, 17:50 
 
hab nicht so ein grosses Maul
Danke!

 
meistereder
19-12-2008, 17:58 
 
Sorry.

Danke für Deine/Eure Hilfe,

Grüsse


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:17 Uhr.