Apache: Serverseitige Programmierung
Zur Interaktion mit dem User sind Scriptsprachen wie PHP oder PERL sehr beliebt. Der Apache Webserver lässt sich natürlich auch mit diesen betreiben. Die Konfiguration des Apache-Webservers und Installation einiger wichtige Scriptsprachen wird im Folgenden beschrieben.PHP für Windows
Für Windows muss natürlich die entsprechende Version von http://www.php.net herunter geladen werden. Bevorzugen sollte man dabei die gepackte Version da sich dort die Einstellungen alle selbst tätigen lassen - wer das nicht möchte, dem ist die Setup-Version ans Herz zu legen. Anschließend wird Paket in einem separaten Verzeichnis unterhalb des Apache Webservers extrahieren und konfiguriert. Zusätzlich ist es notwendig die Dateien aus dem PHP DLL Verzeichnis und die Dateien php4ts.dll und php.ini in das Apache /Bin Verzeichnis zu kopieren.Damit die Konfigurationsdatei übersichtlich bleibt bindet man über den Include-Befehl die einzelnen Konfigurationsanweisungen gesondert ein. Dazu legt man die Datei php.conf im Konfigurationsverzeichnis neu an und bindt sie wie folgt in die httpd.conf des Apache-Servers ein:
Include conf/php.conf
In der php.conf steht dann# Die Datei php.conf: Der Pfad zur php4apache2.dll muss
# natürlich dem Installationspfad angepasst werden
LoadModule php4_module "C:/Server/PHP/sapi/php4apache2.dll"
AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps
#PHP Informationsdatei
<?php phpinfo(); ?>,
Wenn PHP-Dateien nicht überall im
DocumentRoot
ausgeführt werden sollen, kann mit dem Apache 2.x auch einen "Output-Filter" eingesetzt werden, der PHP-Dateien dann ausführt. Beispiel:
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
PHP für Linux
Unter Linux muss der PHP-Quelltext übersetzt werden, dazu einfach den Quelltext von www.php.net herunterladen. Dieser muss dann entpackt, konfiguriert, übersetzt und installiert werden. Anders als bei der Windows-Version gibt es keine extra Module für PHP unter Linux. Um den Support für GD (Grafiken erstellen mit PHP) zu integrieren muss die entsprechende GD Bibliothek auf dem System installiert sein.#Konfiguration des Quelltextes.
./configure --prefix=/usr/local/php-4.4.0
--with--apsx=/usr'/loca/apache2/bin/apsx
# BITTE BEACHTEN: Alles in einer Zeile
make
make install
#Konfiguration der PHP Module, die Datei php.conf
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php .php4 .phtml
AddType application/x-httpd-php-source .phps
# oder mit der Files Direktive gezielt bestimmt
# wo PHP Dateien ausgeführt werden sollen:
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
CGI
Für CGI (Common Gateway Interface) bringt der Apache Webserver bereits ein eigenes Modul mit. Dieses hat aber leider den Nachteil, dass für jedes Script ein neuer Prozess gestartet wird. Eine stark frequentierte Webseite braucht dann dazu einen entsprechend gut ausgestatteten Server. Dafür ist das Modul nicht unbedingt auf die Sprache Perl beschränkt sondern es kann auch z.B. in C geschrieben werden. Das CGI-Modul wird wie folgt in der httpd.conf aktiviert:#Konfiguration in der httpd.conf
LoadModule cgi_module modules/mod_cgi.so
<Directory>
oder <Location>
lässt es sich recht einfach bestimmen wo CGI-Scripte erlaubt sind. Ein einfaches CGI-Script:
#Die Datei HelloWorld.cgi
#!/usr/bin/perl
$Hello = "Hello, World.";
print "Content-type: text/htmlnn";
print "<html>n<head>n<title>CGI Test</title>n<body>n";
print "<h1>$Hello</h1>n";
print "</body>n</html>";
Perl
Mit dem Modul mod_perl gibt es noch eine weitere Umsetzung, die es erlaubt Perl scripts auszuführen. Dabei bietet dieses Modul eine wesentlich bessere Performance als CGI und ist damit für Perl scripts geeigneter. Vorrausetzung ist auch hierfür wieder ein funktionierendes installiertes Perl . Für Linux kann das Modul einfach via ppm installiert werden.ppm install http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
Anschließend wird noch nach dem Pfad zum Apache Modulverzeichnis gefragt in welches dann das Modul kopiert wird. Die httpd.conf ist wie folgt zu erweritern.LoadFile "C:/Server/Perl/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so
perl Makefile.PL MP_AP_PREFIX=/usr/local/apache2
make
make install
LoadModule perl_module modules/mod_perl.so
Alias /perl "/usr/local/apache2/cgi-bin/"
<Directory /usr/local/apache2/cgi-bin>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</Directory>
SSI
Für die Nutzung von SSI muss nur das Modul mod_include geladen werden, was bei der Standardinstallation eigentlich der Fall ist. Anschließend nur noch ein paar Änderungen in der httpd.conf und schon kann SSI überall auf dem Server genutzt werden. Dort wo SSI eingeschaltet werden soll muss dieOptions
-Direktive um den Wert Includes ergänzt werden und ein AddType
und AddOutputFilter
gesetzt werden. Beispiel:
<Directory />
Options Includes
Sonstige Einstellungen
</directory>
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
DocumentRoot
ausführbar.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Apache als Proxyserver
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project