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

[gelöst] PHP-Anfänger

rbest

Hacker
hallo, ich fang grad mit php an und hab xampp für linux installiert. Status zeigt "aktiv" an.
Nun hab ich aus der Schule eine kleine Übung (html, die ein php aufruft) mit einem "submit"-button.
Wenn ich auf den button klicke, fragt firefox, was er mit der php-Datei anfangen soll.
Kann mir jemand mit einem kleinen Tip auf die Sprünge helfen?
Danke schon mal.
 

nbkr

Guru
Fehler in der Konfiguration. Der Apache weiß nicht, dass er die .php Dateien durch den PHP Parser schicken soll. Sollte bei dem Xampp von apachefriends.org eigentlich nicht auftauchen. Falls es doch von apachefriends.org ist, würde ich den Apache, PHP, und MySQL über die Paketverwaltung deiner Distribution installieren. Wie das geht hängt von der Distribution ab.
 
OP
rbest

rbest

Hacker
nbkr schrieb:
Fehler in der Konfiguration. Der Apache weiß nicht, dass er die .php Dateien durch den PHP Parser schicken soll. Sollte bei dem Xampp von apachefriends.org eigentlich nicht auftauchen. Falls es doch von apachefriends.org ist, würde ich den Apache, PHP, und MySQL über die Paketverwaltung deiner Distribution installieren. Wie das geht hängt von der Distribution ab.

Apache ist nicht installiert, nur Apache-Runtime. Überhaupt sind alle installierten Apache-Optionen entweder von SUSE-DVD oder SUSE-Update, nicht aus anderen Quellen.
BTW, xampp ist von apachefriends.org. Hab jetzt php nachinstalliert, bringt aber auch nix.
 

panamajo

Guru
rbest schrieb:
BTW, xampp ist von apachefriends.org. Hab jetzt php nachinstalliert, bringt aber auch nix.
XAMPP hat auf openSUSE nix verloren, die eigenen Pakete sind zu verwenden.

Üblicher Anfängerfehler: verwendung von Short Tags (also <? statt <?php um PHP Code zu merkieren).
Ansonsten siehe das Posting von nbkr
 
OP
rbest

rbest

Hacker
panamajo schrieb:
rbest schrieb:
BTW, xampp ist von apachefriends.org. Hab jetzt php nachinstalliert, bringt aber auch nix.
XAMPP hat auf openSUSE nix verloren, die eigenen Pakete sind zu verwenden.

Üblicher Anfängerfehler: verwendung von Short Tags (also <? statt <?php um PHP Code zu merkieren).
Ansonsten siehe das Posting von nbkr

ok, und wie heißt das gegenstück zu xampp? oder muß ich apache komplett installieren?

BTW, <?php haben wir auch in der schule vereinbart.
 

revealed

Guru
mit den Tags währe kein großes Problem!

Code:
short_open_tag = On
in:
Code:
/etc/php5/apache2/php.ini

:)

mach mal bitte zum Test eine HTML Datei, die eine META Weiterleitung auf deine php Datei macht. Falls das geht, heisst das nicht, dass das so schon gelöst ist.

http://www.linux-club.de/viewtopic.php?f=22&t=95261

Gruß,

R
 
OP
rbest

rbest

Hacker
revealed schrieb:
mach mal bitte zum Test eine HTML Datei, die eine META Weiterleitung auf deine php Datei macht. Falls das geht, heisst das nicht, dass das so schon gelöst ist.

http://www.linux-club.de/viewtopic.php?f=22&t=95261

Gruß,

R

hab eine Übung aus der Schule mitgebracht, dort wird die php wie folgt aktiviert:
Code:
<form action="01PHP_Uebung.php" method="post">
In der php steht dann z.B.
Code:
<?php
	echo $_POST["txtMenge"];
?>

apache ist gestartet, Dateien anhand deines links geändert, Resultat: gleich wie vor. Nein, nicht ganz, langsam hab ich die Schnauze voll. :???:

Sollte ich im webmin noch irgendwas einstellen oder müsste das Teil per default laufen?
 

spoensche

Moderator
Teammitglied
Das PHP Dateien trotz korrekter Konfiguration zum Download angeboten werden, habe ich selbst schon erlebt. Der Grund dafür lag bei mir an der Dateitypeinstellung im Firefox. (Hatte diesbezüglich auch im Forum nachgefragt. Die Suche sollte das was zu Tage fördern)
 
OP
rbest

rbest

Hacker
spoensche schrieb:
Das PHP Dateien trotz korrekter Konfiguration zum Download angeboten werden, habe ich selbst schon erlebt. Der Grund dafür lag bei mir an der Dateitypeinstellung im Firefox. (Hatte diesbezüglich auch im Forum nachgefragt. Die Suche sollte das was zu Tage fördern)

das habe ich gefunden: http://www.linux-club.de/viewtopic.php?f=22&t=69417&p=405930&hilit=firefox+php+dateityp#p405930

ist aber keine Lösung drin. Ich such mal weiter, aber vielleicht hat noch jemand eine Idee.
 

revealed

Guru
Also ich hatte das Problem auch.
Code:
nein, xampp war bereits. Jetzt ist apache an der Reihe.
Nimmst du jetzt apache2 mit SuSE oder so einen ~~"Portable testserver den man überall haben kann?

Weil mit Apache2 und PHP5 hatte ich das Problem zu beginn auch.

Wo genau sich das Problem bei mir gelöst hat, weiss ich nicht mehr. Aber der witz war, als ich das Problem zu beginn hatte vor ca. einem Jahr? Konnte ich PHP Dateien ausführen, indem ich den Scherz mit einer META Weiterleitung gemacht habe. Ich geh mal davon aus, in diesem Falle währe bei dir noch etwas verbogen.

Meinen Apache bzw dessen PHP5 Einstellungen verwalte ich auch über Webmin das geht schon;
Hast du PHP5 in den Apache Modules?

Hast du im Yast2 den ganzen Pattern (Schemate) --> "Web- und Lamp-Server" installiert?
Prüfe nochmals deinen apache2 -> Mach mal ein
Code:
rcapache2 stop
rcapache2 start
(nicht restart) Damit du eventuelle Fehlermeldungen warnehmen kannst.

Hast du alle Updates eingespielt?
Bei mir sieht die php5.conf so aus:
Code:
disk@wild-thing:~> cat /etc/apache2/conf.d/php5.conf
<IfModule mod_php5.c>
        AddHandler application/x-httpd-php .php4
        AddHandler application/x-httpd-php .php5
        AddHandler application/x-httpd-php .php
        AddHandler application/x-httpd-php-source .php4s
        AddHandler application/x-httpd-php-source .php5s
        AddHandler application/x-httpd-php-source .phps
        DirectoryIndex index.php4
        DirectoryIndex index.php5
        DirectoryIndex index.php
</IfModule>

schau mal in der /etc/apache2/httpd.conf nach dieser Zeile, ob die so aussieht:
Code:
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx

ich denke mit dieser Modulkonfiguration müsste es ganz gut laufen?: (/etc/sysconfig/apache2)
Code:
APACHE_MODULES="authz_host actions alias auth_basic authz_groupfile authn_file authz_user autoindex cgi dir include log_config mime negotiation setenvif status userdir asis imagemap vhost_alias php5 perl python authz_default"
Bedenke, dass diese Module auch installiert sein müssen!

in: /etc/php5/apache2/php.ini
Code:
; Enable the PHP scripting language engine under Apache.
engine = On
??

Falls du eine Änderung vorgenommen haben solltest, mach bitte:
Code:
rcapache2 stop
rcapache2 start
(nicht restart) Damit du eventuelle Fehlermeldungen warnehmen kannst.

Ich hoffe das klappt bei dir, weil ich wüsste nicht, woran es liegen könnte. Kann dir dann leider nurnoch sagen. Spanisch am Ende bei mir. Jemand anderes weiss da sicher noch besser bescheid.

Gruß,

R
 
OP
rbest

rbest

Hacker
Danke, hatte zwar gestern nach stundenlangem Festbeißen die Schnauze voll, werde die Installation zuhause aber nochmal durchgehen.

Aber vorher noch eine Frage. Bin grad in der Schule und mein Dozent (der sich zwar mit Linux nicht auskennt) meinte, evtl. müsse eine index.php im Root-Verzeichnis liegen. Weiß das jemand?
 

spoensche

Moderator
Teammitglied
rbest schrieb:
Bin grad in der Schule und mein Dozent (der sich zwar mit Linux nicht auskennt) meinte, evtl. müsse eine index.php im Root-Verzeichnis liegen.

Die index.php benötigst du nur, wenn mit der Direktiven "DirectoryIndex index.php" festgelegt worden ist und du beim Aufruf der Seite ein URL ohne Dateinamen (z.B. http://localhost) verwendest. Wenn du die Datei direkt aufrufst (z.B. http://localhost/test.php) brauchst du die index.php nicht.
 
OP
rbest

rbest

Hacker
hast dir ja recht Mühe gemacht. Jetzt hatte ich endlich die Musse und hab das mal alles umgesetzt. Leider ohne Erfolg.

revealed schrieb:
Nimmst du jetzt apache2 mit SuSE oder so einen ~~"Portable testserver den man überall haben kann?
Hab beides probiert, apache2 und lampp.

Meinen Apache bzw dessen PHP5 Einstellungen verwalte ich auch über Webmin das geht schon;
Hast du PHP5 in den Apache Modules?
ja, hab ich auch.

Hast du im Yast2 den ganzen Pattern (Schemate) --> "Web- und Lamp-Server" installiert?
Prüfe nochmals deinen apache2 -> Mach mal ein
Code:
rcapache2 stop
rcapache2 start
ok, das ist das Ergebnis:
Code:
Starting httpd2 (prefork) httpd2-prefork: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
done
Bedenke, dass diese Module auch installiert sein müssen!
den Rest hab ich nachinstalliert.

Dann kam mir noch die glorreiche Idee, meine Übungsdateien auf meine Webseite zu stellen. Wenn ich sie dort abrufe, kommt folgende Meldung:
Code:
Method Not Allowed
The requested method POST is not allowed for the URL /1/01PHP_Uebung.php.

Apache/1.3.41 Server at http://www.rbest.de Port 80
 

spoensche

Moderator
Teammitglied
Starting httpd2 (prefork) httpd2-prefork: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
done[/code]

Du hast einen Fehler in der Konfiguration. Öffne mal die Konfigurationsdatei und such mal nach Direktiven "ServerName" und trage dor den Namen des Servers ein.
 
OP
rbest

rbest

Hacker
spoensche schrieb:
Du hast einen Fehler in der Konfiguration. Öffne mal die Konfigurationsdatei und such mal nach Direktiven "ServerName" und trage dor den Namen des Servers ein.

es gibt eine Menge conf-Dateien, welche meinst du? In der httpd.conf z.B. gibt es diesen Eintrag nicht.
 

revealed

Guru
ich glaub das ist nicht so wichtig. Eher komisch, warum er das nicht richtig interpretiert.

Schau mal hier: BITTE LESEN! (LÖSUNG?)
http://forum.de.selfhtml.org/archiv/2002/3/t7118/
(Da steht drin, dass durch irgend eine Einstellung quasi die Method POST verboten wird).

Da gibts viele Möglichkeiten von Disablefunctions über andere Direktiven. Diese Einstellungen sind aber nicht Standard, meine ich zu Behaupten.

Kann es sein, dass du eine disable function eingetragen hast eventuell? Oder dass du in der httpd.conf eben doch nicht den Mimetyp richtig bestimmt hast?

Kann es sein, dass du die Datei mit falscher Dateiendung abgespeichert hast, oder dass sie im Documentroot mit falscher Berechtigung abgelegt wurde?

Probiers mal mit:
Code:
chown www.wwwrun dateiname.php

Aber bei dir muss irgendwas verbogen sein, weil das Problem kenne ich nicht. Da musst *irgendwas* in deiner Konfiguration verbogen sein.

Was ich jetzt zwar eher nicht vermute aber:
Code:
php -l /pfad/zur/phpdatei/im/documentroot/dateiname.php
(kleines L)

... ein weiterer Ansatz währe die Frage, ob du etwäige <form> Tags geschlossen hast?

Gruß,

R

PS.: Du könntest es auch erstmal so probieren:
Code:
<form action="hello.php" method="post">
<p>Hello.php aufrufen?</p>
<br>
<input type="submit" value="GO!">
</form>

Code:
<?php
echo "Hello World!"
?>
 
OP
rbest

rbest

Hacker
Danke erst mal für eure Ausdauer.
In Firefox bin ich zwar immer noch nicht erfolgreich, aber wenn ich die Datei in *.php5 umbenenne, dann funktioniert schon mal was in konqueror (wenn auch nicht alles).
Bin jetzt nur grad anderweitig eingespannt, werde aber die anderen Vorschläge noch mal durchackern.
Bis die Tage dann.
 
Oben