home über marty Sonstiges Linux OpenBSD CDVerwaltung Greetz wieso marty44?? Links

LAMP (L)inux, (A)pache, (M)ySQL, (P)HP

Auf vielen Webservern wird heute eine Kombination aus verschiedenen Programmen genannt LAMP eingesetzt. LAMP steht (wie schon in der Überschrift erwähnt ;) ) für Linux, Apache, MySQL und PHP. Apache fungiert als Webserver, MySQL als Datenbank und PHP verknüpft die beiden. Das Ganze läuft unter Linux. Es ist auch möglich, dieses unter anderen Betriebssystemen zu realisieren, aber das ist nicht Thema dieser Site ;)
Diese Site basiert auf DevShed, Fireline und eignen Erfahrungen.

1. Voraussetzungen
Diese Anleitung sollte auf Standartsystemen klappen. Also Compiler und der ganze Kram sollte drauf sein... Die Quellpakete werden alle unter dem Verzeichnis /usr/src/ entpackt und die Installation findet unter dem User root statt.
Bei mir habe ich die Programme auf eine eigene Platte installiert. Diese ist unter /auktion gemountet.

2. MySQL
Als erstes besorgt man sich MySQL von http://www.mysql.com/downloads/index.html. Da bei MySQL die Versionzähler fast wöchentlich hochzählen, kann ich jetzt hier keinen Tip geben, welche man nehmen soll. Am besten das aktuellste, was als "Stable" gekennzeichnet ist. Da meiner Installation schon etwas älter ist, hab ich nicht mehr ein ganz so frische Version drauf...

www:/usr/src# tar xvfz mysql-3.22.32.tar.gz
www:/usr/src# cd mysql-3.22.32
www:/usr/src/mysql-3.22.32# ./configure --enable-large-files --prefix=/auktion/mysql
--enable-large-filesfalls die Datenbank doch mal größer wird...
--prefix=/auktion/mysqlin das Verzeichnis soll MySQL installiert werden
www:/usr/src/mysql-3.22.32# make
www:/usr/src/mysql-3.22.32# make install
Nun muß noch die Userdatenbank eingerichtet werden:
www:/usr/src/mysql-3.22.32# ./scripts/mysql_install_db
Der MySQL-Server kann nun gestartet werden. Man sollte dann auch noch den root-Account in der Datenbank einrichten.
www:/usr/src/mysql-3.22.32# cd /auktion/mysql/bin/
www:/auktion/mysql/bin# ./safe_mysqld &
www:/auktion/mysql/bin# ./mysqladmin -u root password 'ein-Password'
3. Apache - Vorkonfiguration
Der Apache-Webserver kann unter http://httpd.apache.org/dist/ runtergezogen werden. Ich habe die Version 1.3.19 verwendet. Die 2.0-Reihe ist zur Zeit noch im Alpha oder Beta Stadium und ich weis auch nicht, ob diese Anleitung dann auch funktionieren würde... Der Apache wird nur erst mal "auf Standart" konfiguriert. Das brauch das PHP zur Installation. Im Schritt 5 erfolgt dann die richtige Installation des Webservers.
www:/usr/src# tar xvfz apache_1.3.19.tar.gz
www:/usr/src# cd apache_1.3.19
www:/usr/src/apache_1.3.19# ./configure
4. PHP Konfiguration und Installation
PHP lädt man am besten unter der Adresse http://www.php.net/downloads.php runter. Ich habe die Version 4.0.4pl1 verwendet. Bei PHP kann man sagen, das die Updates zwar nicht wöchentlich erfolgen, aber so cira eine neue Version in zwei Monaten ist schon drin...
www:/usr/src# tar xvfz php-4.0.4pl1
www:/usr/src# cd php-4.0.4pl1
www:/usr/src/php-4.0.4pl1# ./configure --with-mysql=/auktion/mysql --with-pcre \
--with-config-file-path=/auktion --enable-debug=no --enable-safe-mode=no \
--enable-url-fopen-wrappers=yes --enable-track-vars=yes \
--enable-force-cgi-redirect --with-apache=../apache_1.3.19
--with-mysql=/auktion/mysqlin dem Verzechnis ist MySQL installiert
--with-pcrein einigen Dingen Perlkompatibelität herstellen
--with-config-file-path=/auktiondort liegt die Konfiguration für PHP
--enable-debug=noich bin kein Entwickler ;)
--enable-safe-mode=nosoviel Angst vor Einbrüchen hab ich nicht
--enable-url-fopen-wrappers=yesdient auch zur Sicherheit im Umgang mit Dateien
--enable-track-vars=yesanscheinend zum besseren Umgang mit Variablen (DevShed meint, man sollte es anschalten...)
--enable-force-cgi-redirectauch für die Sicherheit
--with-apache=../apache_1.3.19da liegt der Quellcode von Apache
www:/usr/src/php-4.0.4pl1# make
www:/usr/src/php-4.0.4pl1# make install
www:/usr/src/php-4.0.4pl1# cp php.ini-dist /auktion/php.ini 
5. Apache Konfiguration und Installation
Jetzt kann es endlich an die Installation des eigentlichen Webservers gehen.
www:/usr/src# cd apache_1.3.19
www:/usr/src/apache_1.3.19# ./configure --prefix=/auktion/apache \
--activate-module=src/modules/php4/libphp4.a
--prefix=/auktion/apachedorthin soll der Apache installiert werden
--activate-module=src/modules/php4/libphp4.awir wollen ja auch PHP mit einbinden (ja, ich weis, bei Autovervollständigen mit
der Tab-Taste gibt es keine libphp4.a - trotzdem so angeben!!!
www:/usr/src/apache_1.3.19# make
www:/usr/src/apache_1.3.19# make install
Nun muß noch die Konfigurationsdatei des Webservers geändert werden. Dazu die Datei /auktion/apache/conf/httpd.conf editieren und folgende zwei Zeilen verändern: (die beiden Zeilen sind irgendwo in der Mitte der Datei drin und müssen nur auskommentiert werden)

Vorher: # AddType application/x-httpd-php .php
# AddType application/x-httpd-php-source .phps
Nachher: AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

6. Start und Shutdown der Datenbank und des Webservers
Dazu verwende ich folgendes Script, welches unter /etc/init.d/mysqlapache abgelegt ist:

#!/bin/sh
#
# Start mysql and apache.

case "$1" in start) echo "Starting mysql" /auktion/mysql/bin/safe_mysqld & sleep 5 echo "Starting apache webserver" /auktion/apache/bin/apachectl start ;; stop) echo "Stopping apache webserver" /auktion/apache/bin/apachectl stop echo "Stopping mysql" /auktion/mysql/bin/mysqladmin -p'ein-Password' shutdown ;; *) echo "Usage: /etc/init.d/mysqlapache {start|stop}" exit 1 ;; esac

exit 0

Damit beim Booten und beim Herunterfahren des Rechners die Server automatisch gestartet/gestoppt werden, müssen noch 4 symbolische Links gesetzt werden.
# cd /etc/rc0.d
/etc/rc0.d# ln -s ../init.d/mysqlapache K20mysqlapache
/etc/rc0.d# cd ../rc1.d
/etc/rc1.d# ln -s ../init.d/mysqlapache K20mysqlapache
/etc/rc1.d# cd ../rc2.d
/etc/rc2.d# ln -s ../init.d/mysqlapache S90mysqlapache
/etc/rc2.d# cd ../rc6.d
/etc/rc6.d# ln -s ../init.d/mysqlapache K20mysqlapache
Manuel können die Server über folgenden Befehl gestartet werden:
# /etc/init.d/mysqlapache start
und so werden sie gestoppt:
# /etc/init.d/mysqlapache stop
Und nun viel Spaß beim Programmieren mit PHP :)

zurück zur Linux-Übersicht
Letzte Aktualisierung dieser Seite: 11. März 2001