Probleme bei Konfiguration von Apache für PHP-Funktionalität

McLOI

New Member
Hallo Community,

seit einem Monat beschäftige ich mich intensiver mit Webserver (Apache). Davor habe ich den Webserver benützt, um PERL-Skripte zu entwickeln und zu testen. Das war leicht, aber ich möchte mich auch mit PHP beschäftigen. Ich mußte feststellen, daß es schwieriger PHP-Funktionalität als CGI-Funktionalität am Webserver einzubinden ist.:confused:

Die offizielle Dokumentation vom Webserver enthält nichts über PHP. Die Dokumentationen von PHP schreiben auch nicht ausführlicher, so daß man sich selber einarbeiten kann.:mad:

Hier sind ein paar Eckdaten von mir:
OS: Windows 98
Webserver: Apache 2.0.63
PHP: Version 5.2.4 mit Zend-Engine v2.2.0

Meine Fragen:
Braucht man das Setzen und die Benutzung von Filtern in der HTTPD-Datei, damit PHP-Dateien vom Server bearbeitet und gesendet werden?

Ist es von Bedeutung, wann eine Direktive geschrieben wird? Die Frage zielt vor allem auf das Laden von Modulen vor anderen Direktiven.

Brauche ich das MDAC-Programm zu installieren und wofür ist es gut?

Auszug aus meiner CONF-Datei:
Code:
...
# PHP-Funktionalitaet
# Fuer die Funktion gibt es zwei Moeglichkeiten: CGI-binary, Apache-module.
#
# -> Einstellungen fuer CGI-binary:
ScriptAlias /php/ "C:/System/php/"
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
# For PHP 4:
# Action application/x-httpd-php "/php/php.exe"
# For PHP 5:
Action application/x-httpd-php "/php/php-cgi.exe"
#
# -> Einstellungen fuer Apache-module:
# AddType application/x-httpd-php .php
</IfModule>
# If path "c:/php/*apache2.dll" don't work, than copy the file
# php4apache2.dll or php5apache2.dll
# from the sapi-directory (from php-directory)
# in to modules-directory (from apache-directory)!
# For PHP 5:
# LoadModule php5_module "c:/System/php/php5apache2.dll"
# LoadModule php5_module modules/php5apache2.dll
# For PHP 4:
# LoadModule php4_module "c:/System/php/php4apache2.dll"
# LoadModule php4_module modules/php4apache2.dll
# Die Funktionalitaet von diesem FILES-Kontainer
# mit den Direktiven ist fuer mich noch unklar:
# <Files *.php>
# SetOutputFilter PHP
# SetInputFilter PHP
# LimitRequestBody 102400
# </Files>
# PHPIniDir "c:/System/php/"
...

Für Tipps und Tricks wäre ich sehr dankbar. Wenn auch jemand Ungereimtheiten in dem Konfigurationscode findet, bin ich für konstruktive Vorschläge offen.


Grüße
McLOI
 
Was sagen denn die Logs?
Du musst das PHP Modul natürlich auch laden (LoadModule).

Gruß
Marcel
 
Hallo Mkeil,

laut, das was ich gelesen habe, kann das PHP-Programm auf zwei Arten vom Webserver angesprochen werden. Ein mal ist es möglich als "CGI-Binary" und die andere Möglichkeit als "Apache-Modul" angesprochen zu werden.

Die Direktiven sind unterschiedlich für die beiden Arbeitsweisen. Die Direktive "LoadModule" eignet sich für die Arbeitsweise "Apache-Modul". Das hat meine Recherche im Internet gezeigt. Dennoch waren die Informationen eher bruchstückhaft. Ich betreibe die PHP-Funktionalität im Moment in "CGI-Binary". Module muß man installieren, was jetzt eher für mich aufwändig ist.

Ich führe schrittweise einen Test. Der Webserver läuft stabil. Das PHP-Programm läuft nach meinem Ermässen in der Konsole normal. Für den Test benütze ich den folgenden Skript:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN
"http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Beispiel</title>
    </head>
    <body>

        <?php echo "<p>Hallo, Welt!</p>"; ?>

    </body>
</html>

Dabei entstehen folgende Einträge in den LOG-Dateien:

ACCESS.LOG
Code:
127.0.0.1 - - [11/Dec/2009:18:55:09 +0100] "GET /cgi-bin/perlsystem.pl HTTP/1.1" 200 1776
127.0.0.1 - - [11/Dec/2009:19:04:00 +0100] "GET /phptest.php HTTP/1.1" 200 270
127.0.0.1 - - [11/Dec/2009:19:11:52 +0100] "GET /phptest.php HTTP/1.1" 304 -
127.0.0.1 - - [15/Dec/2009:21:22:21 +0100] "GET /phptest.php HTTP/1.1" 200 252

ERROR.LOG
Code:
[Tue Dec 15 21:19:38 2009] [notice] Apache/2.0.63 (Win32) configured -- resuming normal operations
[Tue Dec 15 21:19:38 2009] [notice] Server built: Jan 17 2008 22:58:29
[Tue Dec 15 21:19:38 2009] [notice] Parent: Created child process -4084013
Apache server interrupted...
otice] Child -4084013: Child process is running
[Tue Dec 15 21:19:38 2009] [notice] Child -4084013: Acquired the start mutex.
[Tue Dec 15 21:19:38 2009] [notice] Child -4084013: Starting 75 worker threads.
[Tue Dec 15 21:19:38 2009] [notice] Child -4084013: Listening on port 8080.
[Tue Dec 15 21:19:38 2009] [notice] Child -4084013: Listening on port 8080.
[Tue Dec 15 21:54:58 2009] [notice] Parent: Received shutdown signal -- Shutting down the server.
[Tue Dec 15 21:54:58 2009] [notice] Child -4084013: Exit event signaled. Child process is ending.
[Tue Dec 15 21:54:59 2009] [notice] Child -4084013: Released the start mutex
[Tue Dec 15 21:55:00 2009] [notice] Child -4084013: All worker threads have exited.
[Tue Dec 15 21:55:00 2009] [notice] Child -4084013: Child process is exiting
[Tue Dec 15 21:55:00 2009] [notice] Parent: Child process exited successfully.

REFERER.LOG
Code:
- -> /phptest.php
[15/Dec/2009:21:22:21 +0100] -> - -> /phptest.php
 
Last edited by a moderator:
Back
Top