und Apache2.2
cygnus
- php
Hallo :)
Ich habe den Apache2.2 und die dazu passende PHP-Installer-Version installiert.
Die Installerversion hat unten aufgeführte Zeilen in die Apache httpd.config.Datei eingetragen, für die ich in Line 533 einen Syntaxerror erhalte. Das ist die Zeile mit dem zweiten Auftreten von PHPIniDir "C:/Programme/PHP/"
Meine Frage:
PHP soll als Modul eingebunden werden.Wenn ich die Zeilen für php-cgi auskommentiere, kommt eine weiterer Syntaxerror für das dritte Auftreten von PHPINidir
Welche der Zeilen muss ich denn auskommentieren?
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "C:/Programme/PHP/"
Action application/x-httpd-php "C:/Programme/PHP/php-cgi.exe"
PHPIniDir "C:/Programme/PHP/"
LoadModule php5_module "C:/Programme/PHP/php5apache2_2.dll"
PHPIniDir "C:/Programme/PHP/"
LoadModule php5_module "C:/Programme/PHP/php5apache2.dll"
PHPIniDir "C:/Programme/PHP/"
LoadModule php5_module "C:/Programme/PHP/php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
mfg
cygnus
Hallo,
Ich habe den Apache2.2 und die dazu passende PHP-Installer-Version installiert.
nicht nur die, wie mir scheint.
Die Installerversion hat unten aufgeführte Zeilen in die Apache httpd.config.Datei eingetragen, für die ich in Line 533 einen Syntaxerror erhalte. Das ist die Zeile mit dem zweiten Auftreten von PHPIniDir "C:/Programme/PHP/"
Meinst du nicht vielleicht das dritte Vorkommen von PHPIniDir?
PHP soll als Modul eingebunden werden.
Aha. Guter Hinweis.
Welche der Zeilen muss ich denn auskommentieren?
Siehe Kommentarzeichen:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "C:/Programme/PHP/"
# Action application/x-httpd-php "C:/Programme/PHP/php-cgi.exe"
# PHPIniDir "C:/Programme/PHP/"
LoadModule php5_module "C:/Programme/PHP/php5apache2_2.dll"
PHPIniDir "C:/Programme/PHP/"
# LoadModule php5_module "C:/Programme/PHP/php5apache2.dll"
# PHPIniDir "C:/Programme/PHP/"
# LoadModule php5_module "C:/Programme/PHP/php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
Überleg mal: Du willst PHP als Modul, nicht als CGI. Also wozu die Direktive mit php-cgi.exe? Raus damit.
Du hast Apache 2.2, nicht 2.0, also was soll die Referenz auf die PHP-DLL für Apache 2.0? Raus damit.
Dass die Direktive PHPIniDir dann nur noch einmal vorkommen sollte, ist eigentlich selbstverständlich.
So long,
Martin
Hi,
»» [...] einen Syntaxerror erhalte. Das ist die Zeile mit dem zweiten Auftreten von PHPIniDir "C:/Programme/PHP/"
Meinst du nicht vielleicht das dritte Vorkommen von PHPIniDir?
nein, Unsinn. Du meinst tatsächlich das zweite; das dritte wird dann schon gar nicht mehr beachtet.
Ciao,
Martin
Hallo Martin,
nein, Unsinn. Du meinst tatsächlich das zweite; das dritte wird dann schon gar nicht mehr beachtet.
Ich kann die Vorkommen schon gar nicht mehr zählen ...
habe gerade noch eines gefunden, was bei der Installation automatisch eingetragen wurde.
Wenn ich es so auskommentiere wie Du vorgeschlagen hast, dann wird die Seite jetzt zwar angezeigt (vorher war Seitenladefehler), aber PHP arbeitet nicht.
Weiter oben findet sich noch mal das:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
#PHPIniDir "C:/Programme/PHP/"
#LoadModule php5_module "C:/Programme/PHP/php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
Aber wenn ich da die Kommentarzeichen wegnehme, erhalte ich das gleiche wie mit der weiter unten stehenden Zeile: Seite wird angezeigt, aber PHP arbeitet nicht.
Woran kann es denn noch liegen? Muss ich selbst noch irgendwo etwas eintragen?
Leider verstehe ich die nur in Englisch vorliegenden Installationshinweise nur mangelhaft.
mfg
cygnus
Hallo :)
Ich habe jetzt diese Einstellung gewählt:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/Programme/PHP/"
LoadModule php5_module "C:/Programme/PHP/php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
Den anschließenden längeren Kommentar mit dem doppelten Vorkommen des obigen Eintrags habe ich auskommentiert belassen.
Jetzt startet der Apache nicht mehr.
Ich bekomme beim Start diese Fehlermeldung:
<OS 10048> Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden.
:make_sock: could not bind to address 127.0.0.1:80
no listening sockets available, shutting down
Unable to opben locks
Was bedeutet das?
Ich wüsste nicht, wo es mehrfach verwendet wird.
Ich habe diese Einträge in der httpd.config:
Listen localhost:80
ServerName localhost:80
Aber sonst ist da nichts.
mfg
cygnus
n'Abend,
<OS 10048> Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden.
:make_sock: could not bind to address 127.0.0.1:80
no listening sockets available, shutting down
Unable to opben locks
Was bedeutet das?
es bedeutet, dass der Apache mehrmals (mindestens zweimal) versucht, am Port 80 (HTTP) auf 127.0.0.1, auf dem normalerweise Serveranfragen eintreffen, zu "lauschen". Das geht nicht, ein Port kann nur einmal geöffnet werden.
Listen localhost:80
ServerName localhost:80
Der Servername darf AFAIK keine Portnummer enthalten; da darf wirklich nur der reine Hostname stehen.
Die anderen Geschichten mit PHP habe ich noch nicht ganz durchschaut, ich melde mich nochmal. Oder du meldest dich und sagst, dass plötzlich alles funktioniert.
... 'tschuldigung, man darf doch noch träumen! ;-)
So long,
Martin
Hallo :)
Listen localhost:80
ServerName localhost:80Der Servername darf AFAIK keine Portnummer enthalten; da darf wirklich nur der reine Hostname stehen.
Für den Tip schon mal ein Danke.
Zumindest dieser Fehler ist schon mal verschwunden.
ServerName localhost
mfg
cygnus
Hallo,
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/Programme/PHP/"
LoadModule php5_module "C:/Programme/PHP/php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
diese zwei Direktiven sind -soweit ich das erkennen kann- korrekt, sie dürfen jedoch nur einmal in der Konfigurationsdatei auftauchen, und auch nicht innerhalb eines <Directory>-Containers, sondern quasi global.
Damit PHP-Dateien auch wirklich als solche erkannt und an den Parser übergeben werden, brauchst du noch den Eintrag
AddType application/x-httpd-php .php
der ebenfalls global sein muss, also nicht in einem <Directory>-Container (am besten da, wo schon andere AddType-Direktiven stehen).
Wenn man möchte, kann man noch die Direktive DirectoryIndex (die gibt's schon) ergänzen, so dass auch eine index.php im Verzeichnis automatisch aufgerufen wird:
DirectoryIndex index.htm index.html index.php
Die Reihenfolge der möglichen Index-Dateien kann nach eigenem Ermessen gewählt werden.
Mehr habe ich in meiner Apache-Config nicht zum Thema PHP. Allerdings habe ich hier auf dem Schreibtisch auch noch einen Apache 2.0 - ich weiß nicht sicher, was sich zum 2.2er vielleicht noch geändert hat.
Good luck,
Martin
Vielen Dank, Martin.
Ich kann das alles frühestens morgen abend ausprobieren,
werde aber auf jeden Fall noch mal berichten, ob es funktioniert.
mfg
cygnus
Hallo :)
AddType application/x-httpd-php .php
DirectoryIndex index.htm index.html index.php
Good luck,
Leider nein.
PHP arbeitet auch mit diesen Zusätzen nicht.
Trotzdem Danke für deine Mühe.
Da habe ich xampp runtergeschmissen, weil wir es nicht mit Perl kombinieren konnten, und nun harmoniert die Einzelinstallation von Apache nicht mit PHP, aber Perl läuft.
Jetzt frage ich mich, wen oder was ich jetzt runterschmeissen soll ...
mfg
cygnus
Hallo :)
PHP arbeitet!
Nach vielem Probieren stellte ich fest, dass es beim Apache 2.2 genügt, nur diese beiden Zeilen
PHPIniDir "PHP/"
LoadModule php5_module "C:/Programme/PHP/php5apache2_2.dll"
auszukommentieren, zuzüglich der Angabe
DirectoryIndex index.htm index.html index.php unter <IfModule dir_module>
Daraufhin wurde die gewählte Seite korrekt angezeigt.
Apache und PHP sind bei mir unter C:/Programme installiert.
PHPINIDir benötigt aber nicht den Pfad, sondern nur die Angabe PHP.
Keine Ahnung warum - aber es geht wirklich nur so.
mfg
cygnus