• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

PHP-Probleme beim Wiki-Einrichten

Hallo!

Ich habe mir mit pmwiki eine nette Seite eingerichtet, die auch auf meinem lokalen Apache wunderbar funktioniert.

Wenn ich das Wiki zu meinem Provider hochlade (ein Uni-Rechenzentrum), bekomme ich beim Ausführen eines php-Skripts folgende Fehlermeldung:

---------------------------------
Security Alert! The PHP CGI cannot be accessed directly.

This PHP CGI binary was compiled with force-cgi-redirect enabled. This
means that a page will only be served up if the REDIRECT_STATUS CGI
variable is set, e.g. via an Apache Action directive.

For more information as to why this behaviour exists, see the manual
page for CGI security.

For more information about changing this behaviour or re-enabling this
webserver, consult the installation file that came with this
distribution, or visit the manual page.
-----------------------------------

Da ich leider beim Provider niemanden erreichen konnte, hoffe ich auf euch.


Besten Dank und ein schönes Wochenende!

ignoramus
 
wie genau sollen wir dir denn da helfen ?
Den Server hacken und neu konfigurieren ? :wink:

Das du das Problem geschildert hast, ist ja schon mal toll, aber wo ist die Frage?

Der Fehler erklärt sich von selbst... steht ja alles da...
Falls du nun wissen wolltest, was das genau bedeutet... mir hat 3sek. googeln weitergeholfen.

Einfach REDIRECT_STATUS eingeben, und "Seiten auf deutsch"... 3. Link von oben anklicken und fertig. :twisted:

PS: Nichts für ungut :wink: ... damit du für diesmal das Suchen gespart hast :
http://www.php-faq.de/q/q-konfiguration-cgi.html

Viel erfolg noch bei der weiteren Konfiguration... ich kenn das auch, lokal funzt alles super, beim Provider fast gar nichts... :D
 
Danke für den Link. Hatte ich mir allerdings auch schon ergoogled. Hatte aber gehofft, dass mir das jemand ins Deutsche übersetzen könnte... ;-)

Übersetzt man CGI-PHP mit der Konfigurationsoption enable-force-cgi-redirect, funktioniert dies nicht mehr. PHP startet in diesem Fall nur noch, wenn die CGI-Umgebungsvariable $_SERVER['REDIRECT_STATUS'] gesetzt ist (der Wert der Variablen ist egal). Der Apache Server setzt diese Variable, wenn der Zugriff auf das CGI-Verzeichnis die Folge eines eines serverinternen Redirect ist. Üblicherweise konfiguriert man seinen Webserver dann so:

Action php-script /cgi-bin/php
AddHandler php-script .php

Serverinterner Redirect?

Naja, verstehe ich das denn insoweit richtig, dass ich das Problem nicht auf meiner Seite lösen kann (in meinem php-Skript) sondern dass ich meinen Provider bitten muss, seinen Apache so zu konfigurieren, dass er mit meinem Skript klarkommt?


Danke und schönes Wochenende!

ignoramus
 
Man kann PHP auf zwei Arten in den Apache integrieren. Als Modul (das ist bei den vorkompilierten Versionen der Distritubtoren meist der Fall) und als CGI Version (das findet man meistens bei Providern).

Wenn man das ganze als CGI macht, sollte man eine bestimmte Option bei der Erstellung aktiveren (--enable-force-cgi-redirect) um gewisse Sicherheitsprobleme zu vermeiden.

Die Option sorgt dafür, dass man das PHP Binary nicht direkt vom Server abrufen kann, also nicht über http://www.domain.de/pfad/zum/binary/php, statt dessen muss der Aufruf immer vom Apache umgebaut werden damit das klappt.

Jetzt muss das Binary aber über den Pfad zu erreichen sein, damit der Apache die entsprechende Anfrage bearbeiten kann. Diese wird meist über eine ScriptAlias Direktive im Apache gelöst. Wenn man nun den Wert dieser Direktive kennt um im Browser eingibt kommt es zu genannten Fehler.

Ich vermute bei deinem Provider ist der Wert irgendwas generisches wie /php oder ähnliches und Du hast eine entsprechenden Pfad auf dem Server erstellt. Damit kommt der Apache aber nicht klar und leitet dich nicht zu deinen PHP Dateien, sondern direkt zum Binary, welches sich dann beschwert.

Lange Rede kurzer Sinn: Schau mal nach ob Du einen entsprechenden Pfad irgendwo hast und ändere ihn ggf. Besser wäre es natürlich dein Provider ändert die Direktive ab.
 
Oben