• 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] Suse 11.1 Apache, PHP

Karsten

Newbie
Hallo Ihr wissenden...
Ich habe ein Suse 11.1 System mit einem installierten Indianer (funzt) und installiertem php-Modul
Als root ergibt sich mit
Code:
Client3:/ # a2enmod php5
 "php5" already present <br>
PHP an sich scheint auch irgendwie zu laufen, denn phpMyAdmin (liegt bei mir in /srv/www/htdocs/phpMyAdmin) funzt auch.

So weit, so gut...jetzt kommen meine Probleme...
Wenn ich in einer Seite in htdocs (bsp.: index.php) php-Code drin habe, dann wird der Phpcode nur als Text angezeigt.
Wenn ich in einer Seite in htdocs (bsp.:testseite.shtml) SSI verwende, dann wird das nicht eingebunden.
Habe schon fleissig diverse *.conf durchfrostet, aber nicht wirklich was gefunden, wo ich das anpassen muß.
Unter der 9.3 (vor ein paar Jahren;-)) hat wenigstens der SSI-Teil (nach 2 Tagen probieren) funktioniert (wobei...ob man das funktioniert nennen kann???)...aber keine Ahung mehr was ich da alles umgestellt hatte. Ich weiß nur, dass ich da auch nicht die index.shtml in dem Ordner liegen lassen konnte, sondern eine index.html mit einer Weiterleitung auf eine start.shtml gemacht habe, damit das klappt. Aber das geht jetzt auch nicht, die Datei wird dann nur als Text angezeigt.
Ach ja...um nicht nachher noch mal nachzuposten, ich brauche das ganze so, dass das auch in den userdirs läuft. Muß ich das in den einzelnen Userdirs dann noch mal anpassen (mit .htaccess ?) oder kann ich diese Einstellungen "global" für den ganzen Rechner machen?

Danke schon mal...

Karsten
 

panamajo

Guru
Bei openSUSE ist die Apache Konfiguration etwas gewöhnungsbedürftig.

Die wichtigste Datei ist /etc/sysconfig/apache2, denn aus deren Angaben wird beim Start des Dienstes (via rcapache2 oder /etc/init.d/apache2) die Datei /etc/apache2/httpd.conf neu erstellt. Weitere Konfiguration dann in den *.conf Dateien unter /etc/apache2

In der Datei müssen in der Variablen APACHE_MODULES die zu ladenden Module angegeben werden.

Bzgl. SSI: Das Modul mod_include muss geladen sein und
Options +Includes
und der Handler auf eine Dateiendung eingestellt werden
AddType text/html .shtml
AddHandler server-parsed .shtml

Bzgl. PHP:
Oft scheitert PHP Parsing an der Verwendung von nicht-XML konformen <? (statt <?php) in den Skripten, die Option short_open_tags ist bei openSUSE per Default aus.
 
OP
K

Karsten

Newbie
Danke erstmal für die schnelle Antwort...und einen Teil hast Du schon "erschlagen".
Der PHP-Teil läuft (auch in den Userdirs)... Du hast das Problem genau erkannt (ohne es zu sehen...nicht xml-konform (peinlich,peinlich) gibt ja nur ca. 100 Posts, worin man das nachlesen kann :eek:ps:
Jetzt aber noch mal zurück zu SSI:
Ich habe jetzt schon zwei Wege versucht - aber (noch) klappt keiner...also muß ich noch mal um Hilfe bitten...
erster Versuch:
Die UserDir sieht so aus:
Code:
<Directory /home/*/public_html>
		AllowOverride FileInfo AuthConfig Limit Indexes
		Options MultiViews Indexes SymLinksIfOwnerMatch Includes
		<Limit GET POST OPTIONS PROPFIND>
			Order allow,deny
			Allow from all
		</Limit>
		<LimitExcept GET POST OPTIONS PROPFIND>
			Order deny,allow
			Deny from all
		</LimitExcept>
	</Directory>
und ich habe eine .htaccess erstellt, die so aussieht:
Code:
AddType test/html .shtml
AddHandler server-parsed .shtml 
AddOutputFilter INCLUDES .shtml
Options + Includes
Leider ohne Erfolg:-(
Der zweite Versuch war dann folgendes:
in der httpd.conf hab ich folgendes angepasst:
Code:
<Directory />
     Options +Includes
     AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
Jetzt bekomme ich beim neu Starten von Apache die Meldung:
Code:
linux-client:~ # rcapache2 start
Starting httpd2 (prefork) [Wed Apr 15 18:58:04 2009] [warn] module include_module is already loaded, skipping	                                                                                                                      done
Und ich kann die shtml-Seiten aus dem Userdir noch immer nicht aufrufen, da bekomme ich jetzt immer einen Server-Error:
The server encountered an internal error and was
unable to complete your request. Either the server is overloaded or there was an error in a CGI script.

:???: Ich hab weder ein CGI-Script, noch kann der Server mit einem Zugriff von lokal überlastet sein...

Rufe ich das aus htdocs auf, so bekomme ich die gesamte Seite als Text:-(
Muss ich die Handler
Code:
AddType text/html .shtml
 AddHandler server-parsed .shtml
Da auch anpassen? Und wenn ja...weißt Du vielleicht in welcher der *.conf-Datei???Hab ja schon gesucht...zumal da ja auch schon was stehen sollte, oder (z.b.:htm,html...) :???:
Vielleicht noch eine Idee?
 

panamajo

Guru
Ich sehe dein Problem nicht.

In /etc/apache2/mod_mime-defaults.conf
die Zeilen für SSI auskommentieren:

Code:
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

und SSI funktionieren für alle Seiten.
 
OP
K

Karsten

Newbie
Hallo...

Ja, wunderbar...genau das war das Problem. Also eigentlich ja nicht, denn das Problem war ja ich, weil ich nicht wußte, wo ich das eintragen bzw. auskommentieren muß. Auf jeden fall vielen Dank, jetzt läuft alles so, wie ich das wollte.
:up: :up: :up:
 
Oben