PHP unter Apache-Server Registrieren

Hallo, vorerst ein kleiner Hinweis von mir:
Ich bin ein Win2k und XP umsteiger und bin auf Suse 10.2 gewechselt, da ich auch ein wenig PHP-Scripte entwickeln möchte, habe ich mich im Inet informiert und dort stand, der eleganteste Weg unter Suse einen lauffähigen Web-Server zu installieren sei einfach phpMyAdmin zu installieren, da würden alle wichtigen Komponenten mit installiert und man könne sofort loslegen, also ich gleich per Yast das Paket installiert meine HP einfach mal unter /srv/www/htdocs/ gespeichert und aufgerufen, "keine index, kein zugriff, ich dann mal die conf überflogen und ein index.php eingearbeitet, nun kommt die fehlermeldung nicht mehr, aber er will die Seite nun downloaden und schickt sie nicht an den PHP-Parser :frowning:.

Nun zu meiner Frage:
Was muss ich wo eintragen, damit PHP files Parser gesendet werden?

Ich hoffe, ich habe euch alle wichtigen informationen mitgeteilt, ich bin im Netzwerkbereich eigentlich kein Noob, aber Linux ist f. mich noch relatives neuland! Ich bitte also um eine einfache fehlererklärung mit Lösungsvorschlag!

Vielen Dank an alle Mitwirkenden im vorraus!

Hallo,

habe ich mich im Inet informiert und dort stand, der
eleganteste Weg unter Suse einen lauffähigen Web-Server zu
installieren sei einfach phpMyAdmin zu installieren, da würden
alle wichtigen Komponenten mit installiert und man könne
sofort loslegen, also ich gleich per Yast das Paket
installiert meine HP einfach mal unter /srv/www/htdocs/
gespeichert und aufgerufen, "keine index, kein zugriff, ich
dann mal die conf überflogen und ein index.php eingearbeitet,
nun kommt die fehlermeldung nicht mehr, aber er will die Seite
nun downloaden und schickt sie nicht an den PHP-Parser :frowning:.

Du brauchst für 10.2 (über yast installieren)

  • apache-mod-php5
  • php5-devel

Phpmyadmin kannst Du rauswerfen - wenn Du den
Server kontrollierst, brauchst Du das nicht.
Das ist ein Tool für Fernwartung von MySQL-
Datenbanken auf Rechnern, für die Du kein
shell-login hast.

Was muss ich wo eintragen, damit PHP files Parser gesendet
werden?

s.o.

IIRC schreibt die rpm-Installation dann auch gleich eine
Datei
/etc/apache2/conf.d/php5.conf
mit welcher dann Apache beim Start konfiguriert wird.

Dazu sollte dann für den Server, den Du php-fähig machen
willst, die Zeile


Include /etc/apache2/conf.d/php5.conf

vorhanden sein (z.B. in
/etc/apache2/default_server.conf
oder
/etc/apache2/httpd.conf

Grüße

CMБ

So, ich habe jetzt das php-devel paket was du aufgeführt hast nach installiert, und den include eintrag eingefügt in der conf, nach einem restart will er allerdings die php-seiten immernoch runterladen! Wo kann ich das ändern?

Den Eintrag hab ich übrigens ganz an den Anfang gesetzt und nicht erst unter den eintrag „index.php“.

mfg

So ich habe nun noch mal alles runtergeschmissen, was mit apache und php und phpmyadmin zu tun hatte (bei windows hilfts ja auch) und habe dann alle Pakete installiert, die wichtig sind, also:

  • apache2
  • apache_modphp
  • php5
  • php5_devel
  • und alle abhängigen Pakete die Yast vorgibt

Aber leider ohne erfolg, dafür hab ich nun saubere conf-dateien wo nichts von mir editiert wurde! So, hab mir die original-confs nur mal angeguckt und da wird in der default-server.conf auch alle dateien includet die im ordner conf.d stehen also quasi:

Include /etc/apache2/conf.d/*.conf

so, in dem ordner ist auch die php5.conf vorhanden, mit folgendem inhalt

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

Wenn ich nun mein "localhost aufrufe mit einer einzigen Datei namens „index.php“ dann sagt er mir „Zugriff verweigert… kein Index Dokument“. Also ich dann, weil ich die configs noch nicht ändern will einfach mal „localhost/index.php“ und nun kommt bei firefox das fenster „Sie möchten folgende Datei herunterladen…“

Ich hoffe, dass ich nun alle wichtigen Informationen f. euch hier zusammengetragen habe, dass wir da schnell auf ne lösung kommen! Noch einmal vielen Dank für eure Hilfe!!!

Hallo Ben,

Nun zu meiner Frage:
Was muss ich wo eintragen, damit PHP files Parser gesendet
werden?

Steht in der httpd.conf auch solch eine Zeile:

AddType application/x-httpd-php .php

Das ist notwendig, damit Apache php-Dateien auch als solche behandelt. Vielleicht habe ich es übersehen, wurde aber wohl bisher noch nicht erwähnt.
Aber im Prinzip erstaunen mich die Probleme etwas. Wenn Du zuerst Apache und anschließend PHP installiert hast, müsste das eigentlich alles schon ordentlich eingerichtet sein. Zumindest bei mir war es immer so, auch bei älteren Suse-Versionen.

Viele Grüße
Marvin

Hallo,

Aber leider ohne erfolg, dafür hab ich nun saubere
conf-dateien wo nichts von mir editiert wurde! So, hab mir die
original-confs nur mal angeguckt und da wird in der
default-server.conf auch alle dateien includet die im ordner
conf.d stehen also quasi:

Include /etc/apache2/conf.d/*.conf

so, in dem ordner ist auch die php5.conf vorhanden, mit
folgendem inhalt

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

Wenn ich nun mein "localhost aufrufe mit einer einzigen Datei
namens „index.php“ dann sagt er mir „Zugriff verweigert…
kein Index Dokument“. Also ich dann, weil ich die configs noch
nicht ändern will einfach mal „localhost/index.php“ und nun
kommt bei firefox das fenster „Sie möchten folgende Datei
herunterladen…“

OK, das bedeutet, daß die Datei conf.d/mod_php5.conf nicht
beim Apachestart geladen wird.

Es gibt zwei Möglichkeiten das zu erreichen:

a) Über Yast:
(Bei den Paketen muß in Yast das Paket +yast-httpd-server installiert sein)

Yast => Network Services => HTTP Server
dann [Server Modules] => Liste nach ‚php5‘ suchen
dann [x] enabled, weiter, weiter, fertig
(außerdem das modul ‚status‘ einschalten)

b) von Hand:

  • /etc/sysconfig/apache2 editieren

  • APACHE_MODULES (ohne #) suchen und prüfen, ob irgendwo
    ‚php5‘ dazwischensteht (sonst eintragen). Bei der Gelegenheit
    auch gleich das modul ‚status‘ prüfen (eintragen)

  • Datei verlasen/speichern. Apache stoppen: rcapache2 stop

  • Anpassen der SuSE-Konfiguration: SuSEconfig [enter]

  • Apache wieder starten: rcapache2 start (alles als root)

Schau zur Kontrolle mal in die Datei:
/etc/apache2/default_server.conf
dort muß irgendwo stehen:
Include /etc/apache2/conf.d/*.conf
(ohne # Kommentarzeichen davor)

Grüße

CMБ

Okay, habe alle Punkte Step-by-Step abgearbeitet, und mein Suse mal komplett neu gestartet. Und siehe da, er will die index.php nicht mehr downloaden, aber meine index.php mit dem Inhalt:

phpinfo(); ?>

Sollte ja eigentlich von PHP geparst werden und dann eine PHP-Info seite ausgeben, aber es erscheint nur eine weisse Seite, aber ich denke mal, dass wir schon recht nah an der Lösung dran sind und bin guter Hoffnung, dass wir das nun auch noch schaffen!

Okay, habe alle Punkte Step-by-Step abgearbeitet, und mein
Suse mal komplett neu gestartet. Und siehe da, er will die
index.php nicht mehr downloaden, aber meine index.php mit dem
Inhalt:

phpinfo(); ?>

Fehler, das heißt:

> <?php phpinfo(); ?>

Sollte ja eigentlich von PHP geparst werden und dann eine
PHP-Info seite ausgeben, aber es erscheint nur eine weisse
Seite, aber ich denke mal, dass wir schon recht nah an der
Lösung dran sind und bin guter Hoffnung, dass wir das nun auch
noch schaffen!

Daß statt <?php ... ?> auch … ?> verwendet
werden soll, muß man generell gesondert in der
/etc/php.ini einstellen. Das istaber imho nicht
unbedingt zu empfehlen.

Grüße

CMБ

ja klar, sorry, hab ich ja auch so geschrieben mit dem semikolon, hab das nur hier im thread nicht gemacht… Also, ich habe jetzt die Datei noch mal geändert, sprich ich habe nun folgendes in meiner index.php:

<?php phpinfo();
?\> Ergebnis: Die Seite ist leer, dann hab ich das "phpinfo();" einfach mal durch "echo"test";" ersetzt, auch nur eine leere Seite.... Da hab ich mir mal den Quelltext der Seite unter Firefox angezeigt, da steht der normale quelltext wie auch in der index.php also folgendes: <?php echo"test";
?\> Also meine erster gedanke war, Apache schickt die Datei immer noch nicht zu php sondern denkt sich einfach dass es sich um eine normale html seite handelt, aber dann sollte ja eigentlich der text ausgegeben werden wie er auch in der index.php steht, aber er zeigt ja nun gar nichts an, also muss apache die daten zu php schicken, aber php gibt es nicht aus, mhm.... bin ein klein wenig verzweifelt gerade, aber dennoch guter dinge, das wir das noch hinbekommen. Freue mich auf eine neue Idee woran das liegen könnte....

Hallo,

Also meine erster gedanke war, Apache schickt die Datei immer
noch nicht zu php sondern denkt sich einfach dass es sich um
eine normale html seite handelt, aber dann sollte ja
eigentlich der text ausgegeben werden wie er auch in der
index.php steht, aber er zeigt ja nun gar nichts an, also muss
apache die daten zu php schicken, aber php gibt es nicht aus,
mhm… bin ein klein wenig verzweifelt gerade, aber dennoch
guter dinge, das wir das noch hinbekommen. Freue mich auf eine
neue Idee woran das liegen könnte…

Jetzt muß man einfach mal genau nachschauen, was ist
und was nicht ist.

Wenn Du laut vorigem Posting das Modul ‚info‘ aktiviert hast,
in /etc/sysconfig/apache2 müßte jetzt u.a. stehen:

 ...
 APACHE\_MODULES="a... ... info ... status ... php5 ..."
 ...

dann mach doch bitte mal folgendes.

  1. In /etc/apache2/httpd.conf folgendes suchen:

    optional mod_status, mod_info

    Include /etc/apache2/mod_status.conf
    Include /etc/apache2/mod_info.conf

und ggf # vor include entfernen (also einschalten).

  1. in /etc/apache2/mod_status.conf:

    ExtendedStatus On

    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 192.168. 127.0.0.1

  2. in /etc/apache2/mod_info.conf:

    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from 192.168. 127.0.0.1

Wobei in der „Allow from“-Zeile jeweils
das Netz anzugeben ist, in dem der Rechner
steht. Bei Privaten Netzen wäre das eben
192.168.

Jetzt kannst Du (nach „rcapache2 restart“ und
erfolgreichem Start) im Brauser eingeben:

http://bobs.server.at.home/server-info
und
http://bobs.server.at.home/server-status

Dann erfährst Du alles über Deinen Apache, bei
einem älteren SuSE 10.2 ist das z.B.:
http://semjons.alter.server/server-info

**Server Settings**
 Server Version: Apache/2.2.8 (Linux/SUSE) <u>PHP/5.2.5</u> with Suhosin-Patch 
 mod\_perl/2.0.3 Perl/v5.8.8
 Server Built: Feb 29 2008 13:15:14
 Module Magic Number: 20051115:11
 Hostname/port: meiner:80
 Timeouts: connection: 300 keep-alive: 300
 MPM Name: Prefork
 MPM Information: Max Daemons: 150 Threaded: no Forked: yes
 Server Architecture: 32-bit
 Server Root: /srv/www
 Config File: /etc/apache2/uid.conf
 ...

versuch doch bitte mal und schreib, ob er php5 als
„geladen“ aufführt. Tut er das, findest Du einen
Link auf der Seite zu php5.c, welcher Dir weitere
Informationen verrät.

Grüße

CMБ

Also, nach dem mein PC heute morgen aus dem „Suspend to Disk“-Modus aufgewacht ist, hab ich dein Post durchgelesen und meine Daten dementsprechend überprüft, es war alles so weit korrekt!

So, dann wollte ich deine Adressen:
http://bobs.server.at.home/server-info
und
http://bobs.server.at.home/server-status

eingeben und da kam die Meldung:
Server nicht gefunden.

Dann hab ich dein
bobs.server.at.home
durch
localhost ersetzt

und als Fehler kam dann „Seite nicht gefunden“.

Hab dann erstmal geprüft ob denn Apache überhaupt (richtig) läuft und hab mal nur „localhost“ eingegeben und überraschenderweise war die Ausgabe:

Test

Nun weiss ich ehrlich gesagt nicht,warum er läuft, weil ich ja seit gestern nichts geändert habe, ob da wohl mein „Suspend To Disk“ ne rolle spielt??? So in sachen annähernder Neustart??? Aufjedenfall läuft es nun, aber die Info- und Statusseite wäre vielleicht gar nicht so uninteressant, wie setzt sich denn die domain zusammen und warum läuft das nicht mit localhost? Oder speichert der die Info und Status einfach nur nicht unter „/srv/www/htdocs“ weil die beiden ordner sind da ja auch nicht vorhanden, wäre cool, wenn wir diese Zusatzfrage noch klären könnten, aber vielen Dank schon mal f. deine Hilfe!