PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP via PHP.ini deaktivieren?


Geldmann3
2009-07-25, 07:04:06
Ich habe auf einer Testseite gerade versucht PHP in einem gewissen Ordner zu deaktivieren. Bisher habe ich dies immer mit einer .htaccess gemacht. Doch weil dies nun nicht mehr funktioniert bin ich nun gezwungen es über eine php.ini zu tun.
In der htaccess sah das immer ungefähr so aus
php_flag engine off

Jetzt wollte ich es mit einer PHP.ini so machen.

php_flag engine off
Doch PHP funktioniert in dem Ordner mit der PHP.ini immernoch. (Ich habe es mit einem PHP include versucht)
<? include ("Integrieren.html"); ?>
Wenn ich die php Datei über http aufrufe wird Integrieren.html immernoch includet
Fehlt da noch irgendwas? Was habe ich falsch gemacht?
PS: Ich kenne mich nicht sehr gut mit .ini Dateien aus.

darph
2009-07-25, 09:30:02
Meines Wissens gibt es nur eine php.ini.

Aber was immer du da versuchst, so ganz verstehe ich nicht, was du damit willst. Wenn kein PHP ausgeführt werden soll, nenn die Datei ganz einfach nicht .php und konfiguriere deine Installation so, daß zum Beispiel in .html kein PHP interpretiert wird.



Übrigens: Wichtig sind alle Probleme. ;(

Geldmann3
2009-07-25, 13:58:11
Ich muss einen Ordner schaffen in dem jeder seine PHP Dateien hochladen kann. Aber so, dass der Quelltext angezeigt wird. (Also ungeparst). Sodass ich später wenn die dann schon hochgeladenen PHP Dateien bereit sind das PHP aktivieren kann.

Die Dateien auf dem Server könnten sich nämlich gegenseitig beeinträchtigen. (Komplexes News Script mit mehreren Admins)
Wenn da PHP während des Aufbaus aktiviert ist, riskiere ich ein "Domino Day" ala PHP. (Ist leider schon einmal passiert, zum Glück mache ich jeden Tag ein Backup)

Das hat bisher immer ganz gut so geklappt doch nun kann ich keine .htaccess mehr verwenden.

Aber PHP.ini s funktionieren noch, nur habe ich keine Ahnung wie so eine PHP.ini aussehen muss? Beim ersten Versuch habe ich einfach das selbe wie in die htaccess geschrieben. (Bisher erfolglos)

Wichtig habe ich noch mal dazu geschrieben, weil mir von allen Problemen die ich hier je geschildert habe dieses im Moment am wichtigsten ist. Denn solange ich nicht weiss wie das geht, macht es kaum einen Sinn für uns weiterzuachen.

Sephiroth
2009-07-25, 14:35:32
Dein Hoster erlaubt mit Sicherheit keinen zusätzlichen PFad für ini Dateien (vom falschen Syntax mal abgesehen). Schau mit phpinfo nach, wie dieser Pfad lautet - ich bin sicher es ist /etc/php5 und dort kommst du nicht ran.

Zeigen .htaccess Dateien generell keine Wirkung?

Statt der Endung php (und andere), können die Dateiendungen doch auch einfach in phps oder txt geändert werden. Oder sperre den Zugang, damit die Dateien nicht aufgerufen werden können.

Falls .htaccess Dateien doch Wirkung zeigen, dann ginge wohl auch
RemoveHandler .php
RemoveType .php
wodurch die php Dateien nicht mehr vom PHP-Parser verarbeitet werden. Andererseits müsste dann auch php_flag usw. funktionieren.

Geldmann3
2009-07-25, 17:00:08
Mein Anbieter ist im Moment Bplaced.net.

Dein Hoster erlaubt mit Sicherheit keinen zusätzlichen PFad für ini Dateien (vom falschen Syntax mal abgesehen). Schau mit phpinfo nach, wie dieser Pfad lautet - ich bin sicher es ist /etc/php5 und dort kommst du nicht ran.

Zitat von Bplaced.net (http://forum.bplaced.net/viewtopic.php?f=6&t=10190)
Zu beachten gibt es eigentlich nicht vieles, lediglich, dass ab der Umstellung in die .htaccess-Datei keine Werte mehr eingefügt werden können, die mit php_flag oder php_value zu tun haben, für diese wird nun pro Benutzer eine eigene php.ini zur Verfügung stehen.

1. wie bereits genannt, php_flag und php_value ist nun nicht mehr in einer .htaccess möglich.
Hierfür hat nun jeder Benutzer eine eigene php.ini, in die diese Werte geschrieben werden können. Hierzu geht man folgendermaßen vor: die Datei selbst heißt ".php.ini" (den Punkt davor beachten!). Dies hat den Grund, dass die Datei erstmal offiziell als "unsichtbar" für alle gilt, andererseits, dass sie von Seitenbesuchern nicht aufgerufen werden kann.

Dabei reicht es, in dem gewünschten Verzeichnis, für das die Werte gelten sollen, eine solche Datei hochzuladen. Diese also .php.ini benennen und dann einfach die gewünschten Werte in "ini"-Form eintragen, Beispiel:

Also laut miro gehen da in jedem Verzeichnis php.inis.
-----------------------------------------------------
RemoveHandler .php
RemoveType .php
habe ich in einer .htaccess versucht, zeigt keinerlei Wirkung.

php_flag engine off
Führt bei jeder Datei im Verzeichnis zu Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@bplaced.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.2 Server at .bplaced.net Port 80

Sephiroth
2009-07-25, 17:55:14
RemoveHandler und RemoveType sind Apache-Direktiven, die nur via htaccess bzw. Konfig.Datei genutzt werden können.
Wenn du also tatsächlich überall einfach eine php.ini anlegen kannst, die auch geparst wird, dann ist das Format

Direktive=Wert

mehr dazu siehe auch http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP:_Konfiguration#Syntax

p.s.
.php.ini
steht ja auch in dem Post von miro http://forum.bplaced.net/viewtopic.php?p=237526&sid=&f=6#p237526

Wishnu
2009-07-25, 18:00:13
Probiere mal folgendes in der .htaccess

<Files *>
ForceType text/plain
</Files>

Geldmann3
2009-07-25, 19:59:35
p.s.
.php.ini
steht ja auch in dem Post von miro http://forum.bplaced.net/viewtopic.p...d=&f=6#p237526

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaa:eek::eek:
Da muss ich mich ja nicht wundern wenn ich nicht mal richtig lesen kann:biggrin: da hab ich das Ding doch glatt falsch benannt.!
Danke
Ich werde mal probieren ob es daran lag.

Und was haben die Unwissenden daraus gelernt?
Eine php.ini muss .php.ini heissen
*oder
wer lesen kann ist klar im Vorteil

Geldmann3
2009-07-25, 20:12:04
Ich habe jetzt eine ".php.ini" in das Verzeichnis hochgeladen in dem ich das parsen von .php Dateien deaktivieren möchte. Der Inhalt der .php.ini ist folgender
php_flag engine off
Doch es funktioniert nicht. Wenn ich jetzt irgend eine Datei im Verzeichnis aufrufe kommt
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@bplaced.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.2 Server at .bplaced.net Port 80

Geldmann3
2009-07-25, 20:14:38
Mom,,--.... Muhahahaha ich hab lesen gelernt. Direktiven Aha:wink:
Ok, Zitat aus wikibooks.org
Direktiven bestehen aus dem Paar Name und Wert, die durch ein Gleichheitszeichen "=" voneinander getrennt werden.

Muss es dann heissen
php_flag engine=off?
Das funktioniert nicht:confused: -Hat gar keine Wirkung
Da fehlt doch bestimmt noch etwas??? Die Syntax? Aber wie muss die aussehen?

Sephiroth
2009-07-25, 22:16:01
engine=off

Geldmann3
2009-07-26, 00:02:12
engine=off
Was bedeutet das?
Ich habe eine .php.ini mit dem Inhalt
engine=off erstellt.
Php Code wird allerdings immernoch geparst, komischerweise erscheinen in .html Dateien damit alle Umlaute als Fragezeichen.

Wishnu
2009-07-26, 01:15:51
Sephiroth wollte damit nur sagen, dass Du du den Ausdruck "php_flag" nicht mit in die php.ini schreiben sollst, sprich dort nur

engine=off

stehen darf.

Aber wenn auch das nicht klappt, und zudem überhaupt keine Apache-Direktiven mehr über die .htaccess funktionieren (hattest Du das (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=7436988&postcount=7) überhaupt ausprobiert?), würde ich mich mal an den Support Deines Hosters wenden und fragen, ob das derzeit so gewollt ist.

Coda
2009-07-26, 21:26:53
Was bedeutet das?
Ich habe eine .php.ini mit dem Inhalt
engine=off erstellt.
Php Code wird allerdings immernoch geparst, komischerweise erscheinen in .html Dateien damit alle Umlaute als Fragezeichen.
Sicher, dass PHP-Code geparsed wird? Also hast du auch mal was wie "<?php echo 'test'; ?> ausprobiert?

Das mit den Umlauten hat nichts mit PHP zu tun, sondern damit, dass die Locale die der Webserver ausliefert nicht mit dem übereinstimmt was du gespeichert hast.

Also sehr wahrscheinlich UTF8 gespeichert und latin1 vom Webserver.

Geldmann3
2009-07-27, 19:58:33
Also ich habe da eine Datei mit einem PHP include, und das funktioniert.
Das gehört doch zum "Parsen" oder?

Geldmann3
2009-07-30, 22:09:56
Ich habe es jetzt erst mal so gemacht

.htaccess Inhalt:
<Files *>
ForceType text/plain
</Files>
Es funktioniert. Trotzdem frage ich mich was mit der PHP.ini nicht gestimmt hat.

Noch einmal vielen Dank(y)

Gast
2009-08-01, 21:54:07
Vielleicht erlaubt dein Hoster einfach nicht in der User php.ini php abzuschalten?

Geldmann3
2009-08-03, 18:20:12
Ich sach einfach ma doch tut-a:|

Sonst wär das ganze was Miro da geschrieben hat ja völlig erwähnungsunwürdisch. :frown: