PHP wird außerhalb des apache nicht geparst ...

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PHP wird außerhalb des apache nicht geparst ...

Postby Bart » 31. August 2010 07:15

Hallo,

ich möchte mir eine lokale Testumgebung für PHP schaffen. Dazu hatte ich mir den XAMPP installiert und per VirtualHost eine Domain auf ein Verzeichnis außerhalb des apache verweisen lassen. Das funktioniert auch gut, nur werden .php-Files aus dem VirtualHost nicht geparst, sprich im Klartext dargestellt. PHP-Files, die innerhalb der apache-Filestruktur liegen, werden problemlos interpretiert.
Gleiches sehe Verhalten sehe ich auch beim alternativ installierten WAMP.
Das scheint mir etwas grundsätzliches zu sein.
Wie muss ich einen VirtualHost oder den Apache (oder PHP?) konfigurieren, damit er auch auf externen Files aus einem anderen Verzeichnis PHP ordentlich verarbeitet?

Habt Dank :-)
Bart
 
Posts: 6
Joined: 31. August 2010 07:14

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Nobbie » 31. August 2010 10:19

Bart wrote: nur werden .php-Files aus dem VirtualHost nicht geparst, sprich im Klartext dargestellt. PHP-Files, die innerhalb der apache-Filestruktur liegen, werden problemlos interpretiert.


Das ist nur möglich, wenn Du eigens für den VirtualHost eine eigene Konfiguration angelegt hast (entweder im VirtualHost Container, oder im Directory Container oder in einer .htaccess), wo Du den MIME Type für PHP Dateien verbogen hast.

Oder Du machst einen Fehler beim Aufruf. Die Formulierung "außerhalb des Apachen" ist sowieso etwas "krude", sie sagt mir gar nichts. Was heißt das? Wie genau ist der VirtualHost definiert, wo speicherst Du das Testscript ab und was gibst Du im Browser ein, um das Script auszuführen?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Bart » 31. August 2010 16:58

Ich habe die httpd-vhosts.conf erweitert um:
Code: Select all
NameVirtualHost 127.0.0.2
<VirtualHost 127.0.0.2>   
    DocumentRoot "D:/html/"
    ServerName klog
   <Directory "D:/html/">
      Options Indexes FollowSymLinks Includes ExecCGI   
      Order Allow,Deny
      Allow from All   
   </Directory>
</VirtualHost>


und die hosts Datei im Windows-Verzeichnis erweitert um:
Code: Select all
127.0.0.2 klog


Ansonsten habe ich an an Files vom XAMPP nichts geändert und im Zielverzeichnis d:/html liegt keine htaccess - nur ein paar PHP files, die allesamt nicht geparsed werden.
Bart
 
Posts: 6
Joined: 31. August 2010 07:14

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Nobbie » 31. August 2010 17:36

Leider hast Du meine Fragen nicht alle beantwortet - insbesondere die letzte und sehr wichtige Frage (was Du im Browser eingibst).

Und direkt noch eine Frage: wieso gibst Du "NameVirtualHost 127.0.0.2" an? Hast Du mehrere NameBased Hosts mit dieser IP?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Bart » 31. August 2010 18:36

Sorry.
Ich geb im Browser http://klog/test.php ein.
Bzw. http://klog/ wird automatisch auf die index.php weitergeleitet.
127.0.0.2 war ein Alternative um es vom localhost 127.0.0.1 abzugrenzen, weil wärend der Testphasen er manchmal bei http://klog/ auch mit der Standardseite von XAMPP aufwartete.
Bart
 
Posts: 6
Joined: 31. August 2010 07:14

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Bart » 31. August 2010 18:55

Die Datei sieht exakt so aus:
Code: Select all
<?

phpinfo();

?>
Bart
 
Posts: 6
Joined: 31. August 2010 07:14

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Bart » 31. August 2010 19:00

wole wrote:(Stichwort: open_short_tags)


Ok das war's :-)
Warum auch immer das per default in den Installationen abgeschaltet ist - mit short_open_tag = On geht's :-)

Habt tausend Dank
Bart
 
Posts: 6
Joined: 31. August 2010 07:14

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Nobbie » 31. August 2010 19:06

Oh man - dann stimmt nicht einmal die Fehlerbeschreibung:

Das funktioniert auch gut, nur werden .php-Files aus dem VirtualHost nicht geparst, sprich im Klartext dargestellt.


Das simmt nicht. Richtig ist: der Browser zeigt GAR NICHTS an, nur wenn man sich den Quelltext anschaut, DANN ERST wird der PHP Code im Klartext dargestellt. Das ist ein Riesenunterschied!

Die Ursache liegt natürlich im PHP Tag, Du mußt <?php statt <? benutzen (oder short_open_tag auf 1 setzen in php.ini).

Bart wrote:127.0.0.2 war ein Alternative um es vom localhost 127.0.0.1 abzugrenzen, weil wärend der Testphasen er manchmal bei http://klog/ auch mit der Standardseite von XAMPP aufwartete.


Das beantwortet nicht meine Frage: wieso deklarierst Du "NameVirtualHost 127.0.0.2"? Auch die Bemerkung, dass "er manchmal mit der Standardseite von Xampp aufwartete" deutet darauf hin, dass Du nicht so genau weißt, was Du da eigentlich machst. Ein wenig Doku lesen in Sachen VirtualHosts würde Dir sicherlich sehr helfen.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Nobbie » 31. August 2010 19:12

wole wrote:Da täuscht du dich.
Code: Select all
<? ...
zur Einleitung eines php-Scriptes ist das die "sehr alte" Schreibweise, die ab php 5.3 (?) einfach nicht mehr akzeptiert wird, da muß man eben richtig das Script für php einleiten oder eben in Kauf nehmen das es nicht funktioniert.
Richtig ist:
Code: Select all
<?php ...


Nein - leider täuschst Du Dich erneut.

Es wird nicht ab PHP 5.3 nicht mehr akzeptiert und auch in absehbarer Zukunft wird short_open_tag nicht abgeschafft. Das war mal ggf. für PHP6 angedacht - aber noch gibt es keine konkrete Planung, denn es geht dabei ein ganz wichtiges Feature verloren, nämlich die Kurzschreibweise "<?=$variable?>", womit man das Kind gleich mit dem Bad verschüttet. Die Alterntive "<?php echo $variable?>" ist hässlich und klumpig.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Nobbie » 31. August 2010 19:45

wole wrote:Nö, diesmal wohl nicht.
Les mal genau was ich geschrieben habe, ohne Interpretation ... (und mir Berücksichtigung des ? in Klammern)


Du hast genau das geschrieben:

zur Einleitung eines php-Scriptes ist das die "sehr alte" Schreibweise, die ab php 5.3 (?) einfach nicht mehr akzeptiert wird,


Das stimmt nicht. Die Schreibweise wird akzeptiert.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Nobbie » 31. August 2010 20:10

wole wrote:Aber nicht mit den Standart-Einstellungen der Xampp-Installation.
Und genau so ist es gemeint!


Leider ganz und gar nicht - sonst hättest Du nicht auch noch diese (falsche) "Pflicht" hinterhergeschoben:

da muß man eben richtig das Script für php einleiten oder eben in Kauf nehmen das es nicht funktioniert.


Das muss man nicht und man muss auch nicht Kauf nehmen, dass es nicht funkioniert, sondern man muss einfach short_open_tag auf 1 stellen (und davon schreibst Du kein Sterbenswort). Es ist wie es ist.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP wird außerhalb des apache nicht geparst ...

Postby Bart » 01. September 2010 07:46

Nobbie wrote:Oh man - dann stimmt nicht einmal die Fehlerbeschreibung:

Das funktioniert auch gut, nur werden .php-Files aus dem VirtualHost nicht geparst, sprich im Klartext dargestellt.


Das simmt nicht. Richtig ist: der Browser zeigt GAR NICHTS an, nur wenn man sich den Quelltext anschaut, DANN ERST wird der PHP Code im Klartext dargestellt. Das ist ein Riesenunterschied!


Da hast du recht. Wenn man so krümelkackerisch rangeht und "<?" zur Pflicht erklären will, dann stimmt natürlich die Fehlerbeschreibung hinten und vorne nicht.
Aber zum Glück gibt's ja hier auch Leute, die ein wenig fehlertolleranter sind, und mir dennoch weiter helfen konnten.

Dafür nochmals herzlichen Dank.
Für den unschönen Ton hier dieses explizit nicht.
Bart
 
Posts: 6
Joined: 31. August 2010 07:14


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 42 guests