PHP / Apache tot? + 403

Mmmh.
Kannst Du nochmal posten wo die index.html liegt (/User/...) und wo laut /etc/apache2/httpd.conf die DocRoot liegt ?
Was steht in der httpd.conf bei "Listen xxx" ?

Das muss doch irgendwie hinzukriegen sein. :)
 
User/(Web)Sites/index.html
da ist sie, direkt im Websites-Ordner. ^^

DocRoot
Code:
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Library/WebServer/Documents"

Listen, meinst du das hier?
Code:
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
 
Also die Document Root des Apache liegt schonmal nicht da, wo Deine index.html liegt, oder übershe ich da etwas ?

Das Verzeichniss /User/(Web)Sites/... hast Du selber angelegt ?
Weil bei mir gibt es das gar nicht.

Sind da wirklich die Runden Klammern im Verzeichnissnamen ?
Websharing hast Du aktiviert und auch mal zum testen die Firewall ausgeschaltet ?
 
Nein nein nein nein^^
Der Ordner in dem die index.html liegt, ist der Standardordner im "Häuschen", der ja "Websites" heißt, die Klammern, öhm, kA was ich mir dabei dachte, nur les ich auf der Applepage mal Sites, hier bei mir ist es Websites.

Muss die DocRoot auf diesen Ordner, wo alle meine Web-Dateien liegen, zeigen? :D
 
ist Include /private/etc/apache2/extra/httpd-userdir.conf bei dir aktiviert? Da werden die User-confs in /private/etc/apache2/users/ eingebunden. DocumentRoot "/Library/WebServer/Documents" ist woanders. httpd-userdir.conf müsste in etwa so aussehen.
Code:
# Settings for user home directories
#
# Required module: mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir Sites

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf

Das sagt übrigens noch gar nichts aus, wenn ein falscher include-Pfad in der httpd.conf steht startet der Server nicht. Ein wiederholtes sudo apachectl graceful sollte in diesem Falle "httpd not running, trying to start" bringen

Eventuell liegt hier noch irgendein Hund begraben.
http://artur.hefczyc.net/node/10
Wenn ich den Block <IfModule mod_proxy.c>...</IfModule> in meine httpd.conf übernehme, gibt Safari auch ohne die Änderung in /etc/hosts nicht mehr ::1 als IP zurück, sondern wie zu erwarten 127.0.0.1

Das ist ja noch kein php Problem, sondern erstmal noch immer nur das Anfangsproblem.
Könnte sich aber später doch ein PHP-Problem daraus ergeben, denn der 403 kann dann vom fehlenden DirectoryIndex herrühren (natürlich nur, wenn keine index.html gefunden wird, was ja hier offensichtlich nicht der Fall ist), default ist ja nur index.html, in /usr/local/php5/entropy-php.conf wird DirectoryIndex index.html index.php hinzugefügt. Man kanns natürlich auch noch ausführlicher machen
Code:
<IfModule dir_module>
	DirectoryIndex index.html index.php index.php3 index.htm index.shtml index.cgi home.htm
</IfModule>
Testweise würde ich aber auf jeden Fall mal Include /private/etc/apache2/extra/httpd-languages.conf deaktivieren, da in dieser Datei das negotiation_module ins Spiel kommt. Dann stünde allerdings irgendetwas mit "Negotiation: discovered file(s) matching request:" im error_log. BTW: gibts /var/log/apache2/error_log mittlerweile? kann man auch in der Konsole aufrufen -> /var/log/ -> apache2. Falls nicht, würde ich sagen, dein Server lief noch nicht.

Du meinst also ich solle doch das entropy-PHP5 benutzen (wofür ich aber einen zweiten Apache brauche?oo)?
Mal eine Frage, du sagst du hättest das entrppy-PHP5-Paket installiert? Wie hast du das hingekriegt? Bei mir ließ sich das Package gar nicht so mirnichtsdirnichts installieren, auf entropy.ch wird das auch unter "PHP Apache Module" begründet.
PPC and Intel: The PHP5 package version 5.1.4 and higher for Apache 2 can be used with Apache 2 installed into /usr/local/apache2, built from source according to these instructions. Also see the details in this forum discussion.

Link: "these instructions" führt dich hierhin. Tarball runterladen und in /usr/local auspacken, fertig. Danach ließ sich das php5-package problemlos installieren. Vor der Installation lief zwar das vom System mitgelieferte php, nur wurde mysql nicht gefunden - lief aber, wie ich mich im webmin überzeugen konnte; und nachdem ich den Folder data von meiner Tiger-Platte in /usr/local/mysql/ bzw. /usr/local/mysql-5.1.23-rc-osx10.5-x86/ kopiert und mit sudo chown -R _mysql:wheel angepasst hatte, sogar mit altem Datenstand.

Nur noch mal ums deutlich zu machen: /usr/local/apache2 wird nur für php5 benötigt, der laufende Server ist weiterhin /usr/sbin/httpd und die aktive httpd.conf /etc/apache2/httpd.conf (include /usr/local/php5/entropy-php.conf nicht vergessen).

Tja, warum also sollte das bei dir nicht auch funktionieren?
 
Zuletzt bearbeitet:
Nein nein nein nein^^
Der Ordner in dem die index.html liegt, ist der Standardordner im "Häuschen", der ja "Websites" heißt, die Klammern, öhm, kA was ich mir dabei dachte, nur les ich auf der Applepage mal Sites, hier bei mir ist es Websites.

Muss die DocRoot auf diesen Ordner, wo alle meine Web-Dateien liegen, zeigen? :D

Die DocumentRoot sagt dem Server wo die auszuspielenden Dateien liegen.

Du kannst ja auch mal im Terminal ein:
telnet localhost 80
eingeben.

Dann sollte eigentlich kommen:
rying ::1...
Connected to localhost.
Escape character is '^]'.

Gibt Dann einfach mal GET ein und drück enter.
Was passiert dann ?
 
ist Include /private/etc/apache2/extra/httpd-userdir.conf bei dir aktiviert? Da werden die User-confs in /private/etc/apache2/users/ eingebunden. DocumentRoot "/Library/WebServer/Documents" ist woanders. httpd-userdir.conf müsste in etwa so aussehen.
Code:
# Settings for user home directories
#
# Required module: mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir Sites

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf
Das Module wird geladen und die Datei sieht genauso aus^^
Das sagt übrigens noch gar nichts aus, wenn ein falscher include-Pfad in der httpd.conf steht startet der Server nicht. Ein wiederholtes sudo apachectl graceful sollte in diesem Falle "httpd not running, trying to start" bringen
Sowas kommt nicht
Testweise würde ich aber auf jeden Fall mal Include /private/etc/apache2/extra/httpd-languages.conf deaktivieren, da in dieser Datei das negotiation_module ins Spiel kommt. Dann stünde allerdings irgendetwas mit "Negotiation: discovered file(s) matching request:" im error_log. BTW: gibts /var/log/apache2/error_log mittlerweile? kann man auch in der Konsole aufrufen -> /var/log/ -> apache2. Falls nicht, würde ich sagen, dein Server lief noch nicht.
Ja die Datei gibt es, dabei fällt mir gerade aus, dass es mal neue Einträge gibt, für den Fall es hilft:
Meine Zugriffe, aufs Verzeichnis und direkt auf die index.html:
Code:
[Fri Mar 07 19:44:40 2008] [error] [client 192.168.0.205] client denied by server configuration: /Users/Takeo/Sites/
[Fri Mar 07 19:44:40 2008] [error] [client 192.168.0.205] File does not exist: /Library/WebServer/Documents/favicon.ico
[Fri Mar 07 20:12:52 2008] [error] [client 192.168.0.205] client denied by server configuration: /Users/Takeo/Sites/
[Fri Mar 07 20:13:04 2008] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/favicon.ico
[Fri Mar 07 20:13:13 2008] [error] [client 127.0.0.1] client denied by server configuration: /Users/Takeo/Sites/index.html
2 Alerts die ich eben fand, die immer mal wieder kommen
Code:
[Fri Mar 07 17:59:34 2008] [alert] (EAI 8)nodename nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of "Julian.local"
[Fri Mar 07 17:59:34 2008] [alert] mod_unique_id: using low-order bits of IPv6 address as if they were unique
Und was ich eben bemerkte, für jedes mal sudo apachectl graceful kommt im error_log dies hier (in diesem Fall 5 mal eingegeben):
Code:
[Fri Mar 07 21:16:58 2008] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri Mar 07 21:16:59 2008] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri Mar 07 21:17:01 2008] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri Mar 07 21:17:02 2008] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri Mar 07 21:17:03 2008] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri Mar 07 21:17:04 2008] [notice] Digest: generating secret for digest authentication ...
[Fri Mar 07 21:17:04 2008] [notice] Digest: done
[Fri Mar 07 21:17:04 2008] [notice] Apache/2.2.6 (Unix) mod_ssl/2.2.6 OpenSSL/0.9.7l DAV/2 configured -- resuming normal operations
Mal eine Frage, du sagst du hättest das entrppy-PHP5-Paket installiert? Wie hast du das hingekriegt? Bei mir ließ sich das Package gar nicht so mirnichtsdirnichts installieren, auf entropy.ch wird das auch unter "PHP Apache Module" begründet.
Das hier runtergeladen, Doppelklick -> und das Teil hat sich installiert^^
Tja, warum also sollte das bei dir nicht auch funktionieren?
Ich frag mich grad eher wieso das nicht (wie früher) einfach so funktioniert, stattdessen beschäftige ich hier einige User weil ichs nicht gebacken bekomm =(


Die DocumentRoot sagt dem Server wo die auszuspielenden Dateien liegen.

Du kannst ja auch mal im Terminal ein:

eingeben.

Dann sollte eigentlich kommen:

Gibt Dann einfach mal GET ein und drück enter.
Was passiert dann ?

Ja das kommt und nach "get":
Code:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>get to /index.html.en not supported.<br />
</p>
</body></html>
Connection closed by foreign host.
 
Ja das kommt und nach "get":
Code:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>get to /index.html.en not supported.<br />
</p>
</body></html>
Connection closed by foreign host.

Versuch mal GET so wie ich es hier schreibe.
Also in Versalien.

Aber die Antwort vom Server sagt schonmal das er erstmal die Dateo /index.html.en anspricht, welche in /Library/WebServer/Documents/ liegt.
Also in der Docroot.

Wenn Du im Broswer einfach //localhost eingibst, solltest Du eigentlich die Defaultseite vom APache bekommen.
 
Works...
:D:D:D

Hab, wie in den Comments des Artikels beschrieben (dein Link) die Username.conf von “/etc/httpd/users” in "/etc/apache2/users" kopiert.

PHP wird allerdings noch nicht geparst, bin dennoch schon mal heilfroh^^

Wollte eben schauen ob ich das PHP5 Modul in der httpd.conf auch ausgeklammert habe, doch das existiert dort gar nicht oO
Habs wohl mal ausersehen rausgetan... hat mir einer vllt diese Zeile? Und wo muss die dann rein?
 
Hm wenn ich das (an einer beliebigen Stelle unter der Modulauflistung) reinsetze (ohne "#"), geht es trotzdem nicht, hab ich was vergessen?
 
Nun dann, im Artikel gehts um das entropy-php5, mach dich an die Arbeit und alles wird gut.

# LoadModule php5_module libexec/apache2/libphp5.so
include /usr/local/php5/entropy-php.conf
 
Hm, laut phpinfo() funzt es und es läuft PHP Version 5.2.4, allerdings werden mir PHP-Dateien komplett, auch der HTML-Anteil, als plain text angezeigt.

Ah hab jetzt bemerkt, dass alles wunderschön geparst wird, aber nur direkt im Websites-Ordner, sobald etwas in einem Unterordner ist geht weder PHP noch HTML.

Liegt das an einer der vielen Änderungen an der httpd.conf?^^
 
Hört sich sehr verfahren an, vielleicht solltet du mal die httpd.conf aus original/ einsetzen und nur die Änderungrn betreffs php-modul anwenden, sowie ServerName 127.0.0.1. Ansonsten: Flasche leer, Latein fertig ...
 
Selbst in der im Ordner /ogrinal ist das PHP5-Modul nicht mehr enthalten, kann mir evt einer seine Orginaldatei hochladen?
Vllt hab ich da irgendwie Blödsinn mit einer alten Version gemacht, weiß nicht mehr genau.
 
In original/ gibts auch keine Module, die lagern unter
Code:
/usr/libexec/apache2/libphp5.so
bzw. nach entropy-Installation auch noch ein Modul in
Code:
/usr/local/php5/libphp5.so
Ansonsten gibts nur noch die php5.conf in
Code:
/private/etc/apache2/other/php5.conf
und die enthält nur
Code:
<IfModule php5_module>
	AddType application/x-httpd-php .php
	AddType application/x-httpd-php-source .phps

	<IfModule dir_module>
		DirectoryIndex index.html index.php
	</IfModule>
</IfModule>
Wie sieht denn deine User-conf aus? ich meine
Code:
/private/etc/apache2/users/Takeo.conf
So müsste die ja heißen.
 
Nein sry, mit Modul meinte ich hier lediglich die Zeile
Code:
#LoadModule php5_module libexec/apache2/libphp5.so
in der httpd.conf^^ (sry war echt dumm ausgedrückt)
Die war bei mir mal da, jetzt ist sies aber nicht mehr, auch nicht in der /orginal/httpd.conf.

Meine User.conf sieht so aus
Code:
<Directory "/Users/Takeo/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Hab sie, wie in den Comments des Links von dir, aus diesem anderen, unter Leo unbenutzten, Ordner kopiert.
 
Ah hab jetzt bemerkt, dass alles wunderschön geparst wird, aber nur direkt im Websites-Ordner, sobald etwas in einem Unterordner ist geht weder PHP noch HTML.
Lade uns doch bitte deine jetzige httpd.conf, takeo.conf und die mod_php.conf (oder wie auc imer sie jetzt bei dir heisst) hoch. dann können wir besser suchen.

Wenn du sagst: Unterordner: bezieht sich das wieder auf dein Häuschen/Sites oder auf jegliche Unterordner im DocumentRoot?

Nur Mut ... Alles wird gut ;-)
 
Zurück
Oben Unten